【发布时间】:2015-04-05 03:27:31
【问题描述】:
我正在使用 jQgrid 将 mysql 数据显示为网格。
对于网格中的几列,我应用了过滤器。 我想根据过滤值显示/隐藏列。如何做到这一点?
【问题讨论】:
标签: jqgrid
我正在使用 jQgrid 将 mysql 数据显示为网格。
对于网格中的几列,我应用了过滤器。 我想根据过滤值显示/隐藏列。如何做到这一点?
【问题讨论】:
标签: jqgrid
您可以使用onInitGrid 来实现此目的,在此功能中,您可以使用hideCol 和showCol 根据过滤器显示/隐藏要显示/隐藏的列。
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');
}
});
【讨论】:
您可以使用filterToolbar 的beforeSearch 或afterSearch 回调来访问postData.filters 参数。或者,您可以在 loadComplete 内部执行相同的操作。您可以使用$.parseJSON 将其转换为对象并分析过滤器设置的字段。您将获得有关过滤器的完整信息,可以致电showCol 或hideCol。
查看the answer、this one 和this one 以获取相应的代码示例。
【讨论】: