【问题标题】:How to hide/show columns based on filter in jqgrid?如何根据 jqgrid 中的过滤器隐藏/显示列?
【发布时间】:2015-04-05 03:27:31
【问题描述】:

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

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

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

    您可以使用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');
       }
    });
    

    【讨论】:

      【解决方案2】:

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

      查看the answerthis onethis one 以获取相应的代码示例。

      【讨论】:

        猜你喜欢
        • 2015-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多