相关疑难解决方法(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中页面的复选框会清除所选的复选框.因此,如果我检查第1页上的某些复选框,然后单击"下一步"转到第2页,然后返回到第1页,则不再选中所选复选框.

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

jquery jqgrid

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

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事件过程

  • 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 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
查看次数

在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
查看次数