我正在使用免费的 jqGrid 4.8.0。
我注意到searchGrid
(所谓的“高级搜索”)在我关闭它后不再保存过滤条件。
我在 4.7.1 上比较了完全相同的代码,在 4.7.1 上它确实保存了过滤器。
这让我想到,在 4.8.0 中,“recreateFilter”的默认选项可能以某种方式设置为“true”,所以recreateFilter: false
为了安全起见,我也设置了 ,。它没有帮助。
感谢任何解决此问题的建议。
这是代码,基本上我是从网格外部调用它作为函数:
function advancedFilterConfig (nameOfGrid,gridName) {
$(nameOfGrid).jqGrid('searchGrid', {
multipleSearch:true,
showQuery: true,
multipleGroup:true,
caption: "Advanced Search",
sFilter: "afilters",
Find: "Apply",
Reset: "Reset & Close",
closeAfterReset: true,
width:'auto',
recreateForm: true,
recreateFilter: false,
errorcheck: true,
overlay:false,
onSearch: function () {
//Hide the tool bar
$("#gview_"+gridName).find('.ui-search-toolbar').hide();
var postData = $(nameOfGrid).jqGrid('getGridParam', 'postData');
var advancedFilter = jQuery.parseJSON(postData.afilters);
delete postData.afilters;
//Set the advanaced filter here.
gridsSettingObject[gridName].advancedFilter = advancedFilter;
gridsSettingObject[gridName].useAdvancedFilter = true;
changeToggleSwitch(0, '#' + gridName + '-as-on-off-div');
sessionList($(nameOfGrid),gridName);
},
onReset: function () {
delete gridsSettingObject[gridName].advancedFilter;
gridsSettingObject[gridName].useAdvancedFilter = false;
changeToggleSwitch(1, '#' + gridName + '-as-on-off-div');
//Unhide the tool bar
$("#gview_"+gridName).find('.ui-search-toolbar').show();
sessionList($(nameOfGrid),gridName);
}
});
}
谢谢,
塔尔。