相关疑难解决方法(0)

记住(持久化)jqGrid的过滤器,排序顺序和当前页面

我的应用程序用户询问包含jqGrid的页面是否可以记住网格的过滤器,排序顺序和当前页面(因为当他们单击网格项来执行任务然后返回到它时他们会喜欢它是"因为他们离开了它")

Cookie似乎是前进的方向,但如何让页面加载这些它发出第一个数据请求之前将它们设置在网格中在这个阶段有点超出我的意义.

有没有人对jqGrid有这种经历?谢谢!

cookies jquery persistence filtering jqgrid

28
推荐指数
1
解决办法
3万
查看次数

jqGrid - 保存复选框选中状态

检查jqGrid中页面的复选框会清除所选的复选框.因此,如果我检查第1页上的某些复选框,然后单击"下一步"转到第2页,然后返回到第1页,则不再选中所选复选框.

有没有办法在jqgrid中在客户端处理这个?

jquery jqgrid

10
推荐指数
1
解决办法
2万
查看次数

如何在jqgrid中保留当前行

如果再次打开网格或刷新页面,如何预先确定当前行?

持久化jqGrid列首选项中的答案描述了如何保持列宽和其他一些参数.

在这个答案演示中,我点击了一行并按了F5.之前单击的行未突出显示.如何在本地存储中保存/恢复当前行?

更新

如果在应用程序中修改了jqGrid列结构,并且用户再次从浏览器打开应用程序,则restorecolumnstate会创建无效的colmodel,其中缺少某些元素.这会导致refreshSearchingToolbar中出现异常,该异常假定存在所有colmodel元素.

如何解决这个问题?在这种情况下如何设计修改后的colmodol而不是恢复colmodel?或者应该restoreColumnState更新colModel以便创建正确的数组?

**更新2**

如果myColumnsState.permutation包含空值,则$grid.jqGrid("remapColumns", myColumnsState.permutation, true)创建无效的colmodel.以下是在remapColumns调用之前和之后立即从VS调试器截取的屏幕截图

在此输入图像描述

后:

后

我通过chaning代码来解决这个问题

    if (isColState && myColumnsState.permutation.length > 0) {
        var i, isnull = false;
        for (i = 0; i < myColumnsState.permutation.length; i = i + 1) {
            if (myColumnsState.permutation[i] == null) {
                isnull = true;
                break;
            }
        }
        if (!isnull) {
            $grid.jqGrid("remapColumns", myColumnsState.permutation, true);
        }
Run Code Online (Sandbox Code Playgroud)

这是最佳解决方案吗?

jqgrid

7
推荐指数
1
解决办法
9234
查看次数

关于JqGrid流程事件

只是想更好地了解JqGrid事件过程

  • beforeRequest
  • loadBeforeSend
  • serializeGridData
  • loadError
  • gridComplete
  • loadComplete

基于此事件

  • 如果我想在ajax请求中向服务器添加过滤器或额外参数,我应该在loadBeforeSend中执行吗?
  • 从服务器获取数据后,如果我想阻止数据显示在网格中(我想先进一步处理它,之后只显示处理过的数据),我应该在gridComplete中做到这一点吗?

因为我的工作要求我在向服务器发送请求时添加额外的参数,并且在收到数据之后,我需要阻止网格在网格上显示数据,以便我可以在显示处理数据之前进一步处理数据网格.但我似乎无法掌握JqGrid应该将我的功能放到哪个事件.

谢谢


编辑:

对于postData部分

loadBeforeSend: function() {
    if (sessionStorage.pathStates == "edit" && location.pathname.indexOf("list") > -1) {
        console.log("SUCCESS");
        loadFilter();
    }
},
Run Code Online (Sandbox Code Playgroud)

和loadFilter

function loadFilter() {
    var filter = JSON.parse(sessionStorage.filter);
    var filterInput = [],
        model = [],
        filters = {};
    filterInput = filter.filterInput;
    model = filter.model;
    var grid = filter.grid,
        page = filter.page,
        op = "bw",
        a = 0,
        b = 0; …
Run Code Online (Sandbox Code Playgroud)

jquery jqgrid

7
推荐指数
1
解决办法
2909
查看次数

在jqgrid中指定默认过滤器

我想在网格的初始加载时预加载一组过滤器.这样做的原因是我计划将最后选择的过滤器存储在会话变量中,以便用户在最后一次离开时回到网格.

我知道有一个选项可以在editoptions下为一列设置defaultValue,但我正在寻找一种方法来立即加载整个过滤器.(不是每个coulmn的功能).

jqgrid

6
推荐指数
1
解决办法
6538
查看次数

关于jqGrid列标题过滤器和高级过滤对话框的两个相关问题

在使用jqGrid开发我的第一个ASP.NET MVC 3应用程序来显示一些数据时,我正在使用列标题过滤器,并且还允许完成高级过滤器工具栏过滤.独立地这些东西工作得很好.

第一个问题 -有没有人能够将当前列标题过滤器设置传达给高级过滤器?

例如,用户可以过滤"冰淇淋名称"列,输入部分名称,例如"巧克力",它将过滤到"巧克力爆炸","黑巧克力"等 - 很棒.最好的方法是打开高级过滤器,并在高级过滤器中自动填充"包含'巧克力'"列过滤器.我认识到另一个方向(有人可以对同一列进行AND或OR两个值,例如'Chocolate'Or'Carramel')成为问题,但在另一个方向上,似乎有可能.也许这只是我缺少的网格设置.有人解决了吗?

第二个问题 -我目前可以使用列标题过滤器进行一些过滤,在网格中显示一些结果集,然后进入高级过滤器对话框并设置不同的过滤器.这将显示正确的结果,但不清除列标题过滤器,给人的印象是过滤不起作用.如何在用户单击对话框上的"查找"按钮后重置这些列标题过滤器?

asp.net-mvc jqgrid

5
推荐指数
1
解决办法
9722
查看次数

如何将jqgrid工具栏中的切换按钮添加到自动生成的上下文菜单

使用Oleg answer as定义jqgrid顶部工具栏中的切换按钮

var autoedit;
$("#grid_toppager_left table.navtable tbody tr").append(
    '<td class="ui-pg-button ui-corner-all" >' +
        '<div class="ui-pg-div my-nav-checkbox">' +
        '<input tabindex="-1" type="checkbox" id="AutoEdit" '+(autoedit ? 'checked ' : '')+'/>' +
        '<label title="Toggle autoedit" for="AutoEdit">this text is ignored in toolbar</label></div></td>'
);
$("#AutoEdit").button({
    text: false,
    icons: {primary: "ui-icon-star"}
}).click(function () {
    autoedit = $(this).is(':checked');
});
Run Code Online (Sandbox Code Playgroud)

如何将标准文本框命令添加到jqgrid上下文菜单中的答案用于从工具栏自动生成网格的上下文菜单.

在此项目的生成上下文菜单中,仅出现文本"工具栏中忽略此文本",并且选择它不会执行任何操作.

如何使其工作或从上下文菜单中删除此项?

jqgrid

2
推荐指数
1
解决办法
5003
查看次数

jQgrid更改参数发送到服务器

我正在使用cookie来加载用户以前的排序和分页选项.我想获取这些保存的值,并将它们设置为服务器接收的参数.

我想改变的参数如下,(行通过prmNames替换行)

/&max=20&page=1&sidx=&sord=asc

我尝试过使用:

   $.extend($.jgrid.defaults, {
    sidx:"fName",
    sord:"desc",
    page:2,
    rows:10});
Run Code Online (Sandbox Code Playgroud)

和变化:

      beforeRequest:function(){
        $('#grid').jqGrid('setGridParam', {
            sidx: "fName",
            sord: "desc",
            page: 2,
            max: 10
        });

    }
Run Code Online (Sandbox Code Playgroud)

它更改了page使用$ .extend($.jgrid.defaults ...的值),但我无法更改其他参数.

jqgrid

2
推荐指数
1
解决办法
5230
查看次数

我在哪里可以使用jqgrid remapColumns函数?

如果我remapColumnscolumnChooser完成事件中使用,那么我对列进行排序没有问题.但是,当我移动 remapColumnsbeforeReques一个新的烫发信息T,见下图:

beforeRequest: function(){                                              
    perm =   {0:2,1:0,2:1,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:10};
    myGrid.jqGrid("remapColumns", perm,  true);
}
Run Code Online (Sandbox Code Playgroud)

列被正确重新排序,我可以搜索列值,但列排序功能刚刚被禁用.点击事件似乎无效.有人可以帮忙吗?我怎样才能找回来?真的很感激.

非常感谢!

jquery jquery-ui jqgrid

2
推荐指数
1
解决办法
6600
查看次数

JqG​​rid需要超链接 - 需要通过Jquery捕获值

我的代码中有以下内容:

      { name: 'ID', index: 'ID', width: 40 , formatter: 'showlink', search: false, formatoptions: { baseLinkUrl: '/Program/EditMicro'} },
Run Code Online (Sandbox Code Playgroud)

当我点击PNum时,会发生什么事情,它会转到以下actionresult我的控制器:

    /Program/EditMicro
Run Code Online (Sandbox Code Playgroud)

我想要的是通过Jquery在所选内容(选择了什么ID)上捕获该信息,因为我想在发送到以下ActionResult之前做一些json

    /Program/EditMicro
Run Code Online (Sandbox Code Playgroud)

所以,回顾一下,无论如何都要捕获超链接点击的价值,然后我可以在Jquery中捕获它.

先感谢您

jquery jqgrid

2
推荐指数
1
解决办法
9080
查看次数

在cookie中发送扩展的TreeGrid节点

继续本主题,我想在cookie中保存扩展节点.这是最好的方式吗?

我不确定JSON数据检查的方式.

为什么expandRow不起作用?

var gridId = "#table";
var grid = $(gridId);
grid.jqGrid({

...

loadComplete: function() {
var ids = grid.jqGrid('getDataIDs');

var cookie = $.cookie(gridId + '_expanded');
var expanded = false;

if (typeof(cookie) == 'string')
var expanded = JSON.parse(cookie);

for (var i=0;i<ids.length;i++) {
var id=ids[i];
var row_data = $(this).jqGrid('getRowData', id);

if (expanded && id in expanded && expanded[id] == 'true')
$(gridId + ' tr#' + id + ' div.treeclick').trigger("click");
//Why it doesn't work?
//grid.jqGrid('expandRow', row_data);

}
} …
Run Code Online (Sandbox Code Playgroud)

cookies jquery jqgrid

1
推荐指数
1
解决办法
2963
查看次数

在filtertoolbar上设置默认值

我正在寻找一种方法来设置过滤器工具栏中多列的默认值JSON.

我知道我可以defaultvalue在searchoptions中使用该选项,但我希望能够使用a设置过滤器json string.

我的json字符串:

    {"groupOp":"AND","rules": [{"field":"PART_AFFILIATION","op":"eq","data":"PART-M"},{"field":"STATUS","op":"eq","data":"Active"}]}
Run Code Online (Sandbox Code Playgroud)

jqgrid

1
推荐指数
1
解决办法
5054
查看次数

标签 统计

jqgrid ×12

jquery ×6

cookies ×2

asp.net-mvc ×1

filtering ×1

jquery-ui ×1

persistence ×1