相关疑难解决方法(0)

持久化jqGrid列首选项

我的ASP.NET MVC 3应用程序上有一些jqGrids,它们有很多列.我在列定义中添加了以下内容,以默认隐藏一些列:

colModel: [
   { name: 'IceCreamID', hidden: true},
   { name: 'RecipeID', hidden: true }
Run Code Online (Sandbox Code Playgroud)

这很好用.这些列在我的网格上不可见.

然后我添加了这个来实现列选择器:

var grid = $('#icecreamGrid');
grid.jqGrid('navButtonAdd', '#icecreamPager',
{ caption: "Columns", buttonicon: "ui-icon-calculator",
  title: "Choose Columns",
  onClickButton: function() {
     grid.jqGrid('columnChooser');
  }
});
Run Code Online (Sandbox Code Playgroud)

太棒了,现在提出了专栏选择器.然后我将以下内容添加到我从未希望在列选择器中显示的列中:

colModel: [
   { name: 'IceCreamID', hidden: true, hidedlg: true},
Run Code Online (Sandbox Code Playgroud)

所以我现在可以隐藏/显示列就好了.现在,您如何坚持这些信息?D B?作为一个cookie?另一种方式?是否有一种首选的方式来存储这种真正是用户偏好的信息,而不是与数据本身相关的信息?


更多信息

根据Oleg在下面的评论,我想提供更多信息.

这里的要点是我有10-15列的网格,可以根据用户的偏好显示.举一个简单的例子,我的一个网格有以下9列:

IceCream|ShortName|HasNuts|SugarAdded|LimitedRun|PromoItem|Facility|FirstRun|LastRun
Run Code Online (Sandbox Code Playgroud)

用户可以根据个人喜好隐藏/显示这9列中的任何一列.

我想要做的是提供一种方法来持久保存特定用户想要查看的列,以便他/她不必在每次显示带有该网格的页面时重新选择这些列.

asp.net-mvc jqgrid asp.net-mvc-3

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

jqgrid:多选和禁用检查(有条件)


我喜欢jqGrid,但有时事情似乎比它们应该更复杂.
我想要实现的是在每一行上都有一个复选框,以便用户可以选择要提交/处理的行.
但是,我需要阻止一些复选框,因为用户可能没有授权该特定行.

我试图设置multiselect: true,然后我试图隐藏复选框:

loadComplete: function (data) {
    if (data.rows.length > 0) {
        for (var i = 0; i < data.rows.length; i++) {
            if (data.rows[i].cell[7] == 'false') {
                $("#jqg_OrdersGrid_" + data.rows[i].id).css("visibility", "hidden");
            }
        }
    }
},
Run Code Online (Sandbox Code Playgroud)

它运作良好,但仍然.jqGrid('getGridParam', 'selarrrow')给我选定的行,即使它们没有被检查过.
有没有其他方法可以启用/禁用复选框,以及如何知道已检查哪些复选框?

谢谢

jquery jqgrid

18
推荐指数
2
解决办法
4万
查看次数

JQGRID - 维护复选框选择状态 - 页面刷新/重定向/重新加载

^ h流量保持页面刷新/重载/从其他页面重定向后的复选框选择jqGrid的.

我在aspx页面上工作.

可以使用以下代码在分页中维护复选框选择状态:

    gridComplete: function () {
     var currentPage = $(this).getGridParam('page').toString(); //retrieve any previously stored rows for this page and re-select them
     var retrieveSelectedRows = $(this).data(currentPage);
     if (retrieveSelectedRows) {
        $.each(retrieveSelectedRows, function (index, value) {
        $('#list').setSelection(value, false);
     });
    }
   },
   onPaging: function (a) {
     var pagerId = this.p.pager.substr(1); // ger paper id like "pager" 
     var pageValue = $('input.ui-pg-input', "#pg_" +           $.jgrid.jqID(pagerId)).val();
     var saveSelectedRows = $(this).getGridParam('selarrrow'); //Store any selected rows 
     $(this).data(pageValue.toString(), saveSelectedRows);
  }
Run Code Online (Sandbox Code Playgroud)

但是, …

javascript asp.net checkbox jqgrid jqgrid-asp.net

8
推荐指数
0
解决办法
3791
查看次数

如何在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网格使用过滤器,数据在组中,默认为崩溃的第一个状态.如果用户打开一个组或2(表示组),那么过滤器,网格重新加载数据,正确过滤它,但然后我松开了用户打开的组的展开状态.有没有办法没有它,在进行过滤时切换回默认的折叠状态?

提前致谢.

grouping state filter jqgrid

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

将选定的行从Jqgrid带到顶部

我在'multiselect'模式下使用jqgrid而没有分页.当用户使用鼠标单击选择单个记录时,有什么方法可以将这些选定的记录带到网格顶部?

在此先感谢您的帮助.

javascript jquery jqgrid

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

根据单元格值在jqGrid中选择一行

colModel: [
            { name: 'Id', index: 'Id', hidden: true, search: false },
            { name: 'Name', index: 'Name', hidden: true, search: false },
          ]
Run Code Online (Sandbox Code Playgroud)

正如setSelection方法允许基于行号选择jqGrid中的行一样,是否可以基于其中一个单元格值类似地选择行.

例如,在上面的colModel中,是否可以选择具有特定"Id"或"Name"值的行...假设这些值对于每一行是唯一的.

jqgrid

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