如何在jqgrid中基于过滤器隐藏/显示列?

时间:2015-02-05 10:09:30

标签: jqgrid

我正在使用jQgrid将mysql数据显示为网格。

对于网格中的少数列,我应用了过滤器。 我想根据过滤的值显示/隐藏列。怎么做到这一点?

2 个答案:

答案 0 :(得分:2)

您可以使用onInitGrid来实现此目的,在此功能中,您可以使用hideColshowCol显示/隐藏要根据过滤器显示/隐藏的列。

jQuery("#jqGrid").jqGrid({
   url: '[sever_url]',
   mtype: "POST",
   postData: [postdata], // {name:value}
   datatype: 'json',
   colModel: [
      { index: 'column1_index', name: 'column1_name' },
      { index: 'column2_index', name: 'column2_name' },
      { index: 'column3_index', name: 'column3_name' },
      { index: 'column4_index', name: 'column4_name' },
      { index: 'column5_index', name: 'column5_name' }
   ],
   onInitGrid: function(){
      jQuery("#jqGrid").jqGrid('hideCol','column2_name');
      jQuery("#jqGrid").jqGrid('hideCol','column4_name');
      jQuery("#jqGrid").jqGrid('showCol','column5_name');
   }
});

答案 1 :(得分:1)

您可以使用beforeSearch的{​​{1}}或afterSearch回调来访问filterToolbar参数。或者,您可以在postData.filters内执行相同的操作。您可以使用loadComplete将其转换为对象,并分析过滤器设置的字段。您将获得有关过滤器的完整信息,并可致电$.parseJSONshowCol

the answerthis onethis one中查找相应的代码示例。