jqgrid - 在setcolumns之后将所有列重置为默认值

时间:2011-05-18 06:07:29

标签: jquery jqgrid

我使用了setColumns函数在客户端动态显示/隐藏列。

现在我想将所有列重置为默认视图..如何做到这一点。

以下是我使用的代码

$("#list").navButtonAdd('#pager', {
  caption: "View",
  title: "Click here to select Columns to view",
  onClickButton: function() {
    var params = {width:500,modal:true,drag:true};
    jQuery("#list").setColumns(params);
  },
  position: "last"
});

我需要像重置这样的东西。

jqgrid的刷新按钮只是用选定的列刷新表,但不重置它们。

感谢, 和Sandeep

1 个答案:

答案 0 :(得分:1)

我可以将原始colModel参数保存在变量中,并使用hidden属性的初始值来显示或隐藏列:

var grid = $("#list"),
    cm = [
        { name:'id', hidden:true, ... }, // initially hidden column
        { name:'name', ...},             // initially non-hidden column
        ...
    ];
grid.jqGrid({
    colModel:cm,
    // ... other jqGrid parameters
});
grid.jqGrid('navButtonAdd','#pager', {
    caption: "Reset Columns",
    title: "Click here to select Columns to view",
    onClickButton: function() {
        var i=0, cmi, l=cm.length;
        for (;i<l;i++) {
            cmi=cm[i];
            if (typeof cmi.hidden === 'undefined' || cmi.hidden === false) {
                grid.jqGrid('showCol',cmi.name);
            } else {
                grid.jqGrid('hideCol',cmi.name);
            }
        }
    },
    position: "Reset"
});

请参阅演示here