我正在使用jQgrid将mysql数据显示为网格。
对于网格中的少数列,我应用了过滤器。 我想根据过滤的值显示/隐藏列。怎么做到这一点?
答案 0 :(得分:2)
您可以使用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');
}
});
答案 1 :(得分:1)
您可以使用beforeSearch
的{{1}}或afterSearch
回调来访问filterToolbar
参数。或者,您可以在postData.filters
内执行相同的操作。您可以使用loadComplete
将其转换为对象,并分析过滤器设置的字段。您将获得有关过滤器的完整信息,并可致电$.parseJSON
或showCol
。
在the answer,this one和this one中查找相应的代码示例。