在 JQGrid 加载中显示或隐藏列

Show or hide columns in JQGird loading

我正在使用 JQ 网格。我想在加载网格时 show/hide 列。

场景:

加载网格时,我想检查条件,如果条件为真,则显示列,否则隐藏。

示例:

if(GlopalId==1){
   $("#grid").jqGrid('hideCol', ["name","invdate"]);
}
else{
   $("#grid").jqGrid('showCol', ["name","invdate"]);
} 

如何在网格加载时间或网格加载完成后检查此条件。

这是我的网格结构。

$("#grid").jqGrid({
        datatype: "local",
        data:mydata,
        colModel: [
                   { label: 'Inv No', name: 'id', key:true },
                   { label: 'Date', name: 'invdate' },
                   { label: 'Client', name: 'name', width: 250, editable:true,edittype:'textarea'  },
                   { label: 'Amount', name: 'amount',editable:true },
                   { label: 'Tax', name: 'tax' },
                   { label: 'Total', name: 'total' },
                   { label: 'Notes', name: 'note'}
               ],
               page: 1,
               width: 1000,
               height: 250,
               rowNum: 20,
               viewrecords: true,
               scroll: 1, // set the scroll property to 1 to enable paging with scrollbar - virtual loading of records
               emptyrecords: 'Scroll to bottom to retrieve new page', // the message will be displayed at the bottom 
               pager: "#jqGridPager",
               shrinkToFit: false,
               hoverrows: false, 
               onSelectRow: editRow, // the javascript function to call on row click. will ues to to put the row 
            //   'cellEdit' : true,
             // cellurl:calMeth
    });

您使用datatype: "local", data: mydata。所以你有完整的数据,需要在创建网格之前加载到网格中。为什么不在创建网格期间直接分析数据并在 jqGrid 的列中使用 hidden: true 属性?或者,您可以在 colModel 中使用 hidden: isHidden 用于某些列,并在 网格创建之前设置 isHidden 变量的值