第一次加载网格时,在jqgrid中的列选择器中隐藏某些列

时间:2014-07-23 13:13:45

标签: jquery

我正在尝试将某些列隐藏到选择器插件的隐藏部分,只有当我的网格首次加载 时。

现在,当用户选择隐藏部分中的某些列到显示列部分时,如果他再次重新加载,则他之前选择在网格中显示的列重装,必须坚持下去。

他们是否有办法实现这种情况? 任何帮助将不胜感激。

谢谢:)

1 个答案:

答案 0 :(得分:0)

这需要一些工作来设置。基本思想是将一个函数附加到chosser插件的pageB onClickButton上,将这些数据保存在本地或数据库中,然后在加载网格之前使用.jqGrid(' showCol')方法。应该注意的是,这不是为多语言安装而设计的。

首先,假设您的网格ID 网格,Pager的ID为寻呼机(您可以选择您想要的 ui-icon ,但我只是认为垂直点看起来有点像柱子)

$('#grid').jqGrid('navButtonAdd','#pager',{caption:'',title:'Columns',buttonicon:'ui-icon-grip-dotted-vertical',id:'pager-colsel',onClickButton:function(){
        $(this).jqGrid('columnChooser',{
            done:function(){
                var aryShow = new Array(),aryHide = new Array();
                //this is predetermined by the plugin and is simply #colchoose_YOURGRID
                $('#colchooser_grid option').each(function(){
                    if ($(this).is(':selected')){
                        aryShow.push($(this).html());
                    }else{
                        aryHide.push($(this).html());
                    }
                });
                //saves the selected columns as a string for storage
                var show = aryShow.join(),hide = aryHide.join();
                //now you need to store this variable somehow, either through $.post, localstorage, or a cookie
                localStorage.setItem('chooser-show', show);
                localStorage.setItem('chooser-hide', hide);
            }
            //forces user to make a choice before proceeding
            ,modal:true
        });
    }
}); 

接下来,您需要在第一次加载网格时获取变量。调用.jqGrid初始化方法后,使用以下代码显示

//explodes the stored strings into proper arrays for jqGrid
var aryShow = localStorage.getItem('chooser-show').split(',');
var aryHide = localStorage.getItem('chooser-hide').split(',');
//uses the hideCol and showCol methods to load the previously stored properties
$('#grid').jqGrid('hideCol',aryHide).jqGrid('showCol',aryShow);

**注意:如果您更改colModel中任何列的名称或添加/删除列,您将收到错误。如果您计划完全修改colModel,请确保在初始化期间添加代码以检查不完整的 chooser-show 选择器隐藏 localStorage变量并删除它们