免费的jqGrid搜索参数在filterToolbar中消失

我使用的是freejqGrid版本4.13.1。 我刚刚添加了filter工具栏的代码,该代码正常工作,但搜索后搜索参数消失了。 搜索工作和一切,但我想将该文本留在工具栏中,直到使用(x)清除。

$('#jqGrid_destroyed').jqGrid({ url:'/url.php', height: 'auto', shrinkToFit: true, width: Math.floor($(window).width()*1), datatype: 'json', mtype: 'POST', colNames:[ 'Flat ID', 'Customer', 'Flat #', 'MiscCode', 'Item Number', 'Item Description', 'plus', 'RevDate', 'Created Date', 'Plate/Flat in QA', 'Computer Files to Waiting Destruct', 'Plates/Flat Destroyed', 'Date Confimation Sent to Customer' ], colModel:[ {name:'flat_id',hidden:true}, {width:14,name:'Customer'}, {width:10,name:'flat_plate_num'}, {width:13,name:'MiscCode'}, {width:20,name:'item_number'}, {width:45,name:'item_description'}, {width:12,name:'plus'}, {width:16,name:'revdate'}, {width:22,name:'created_date', align: "right", hidden:true}, {width:17,name:'flat_in_qa'}, {width:20,name:'computer_files_to_waiting_destruct'}, {width:25,name:'flat_destroyed'}, {width:20,name:'date_confimation_sent_to_customer', formatter : 'date', formatoptions : {srcformat: "Ymd", newformat:"m/d/Y"}} ], sortname: 'date_confimation_sent_to_customer', sortorder: 'desc', viewrecords: true, gridview: true, caption: 'Waiting Destruct', rowNum: 10000, pager:true, searching: { defaultSearch: "cn" } }).jqGrid("filterToolbar"); 

免费jqGrid 4.13.1引入了新function – 基于postData.filters填充filter工具栏。 参见README4.13.1 。 该function有一些错误,在您的情况下存在。 这些错误在更高版本的免费jqGrid中得到修复。

可以通过使用loadFilterDefaults: false (通过使用.jqGrid("filterToolbar", {loadFilterDefaults: false})关闭该function,或者通过将searching: { defaultSearch: "cn" }更改为searching: { defaultSearch: "cn" }searching: { defaultSearch: "cn", loadFilterDefaults: false } )。 另一方面,我建议您更新到当前发布的免费jqGrid版本:4.13.5或使用GitHub的最新资源。

在许多情况下,搜索选项loadFilterDefaults: false非常实用。 例如,可以使用filter工具栏和搜索对话框。 如果要在filter工具栏中设置一些filter,然后打开“搜索对话框”,则会在对话框中看到当前filter。 您可以修改它并应用新filter。 网格将显示新filter,但旧版本的jqGrid仍会在filter工具栏中显示旧filter 。 我发布了旧答案 ,其中显示了如何根据当前使用的filter填充filter工具栏。 如果使用loadFilterDefaults: true的默认loadFilterDefaults: true选项,则新版本的free jqGrid将自动刷新filter工具栏。

还有其他常见的场景,其中loadFilterDefaults: true会有所帮助。 例如,可以使用loadonce: true选项从服务器加载所有JSON数据。 Free jqGrid允许将loadonce: true选项与forceClientSorting: true ,在数据显示在网格中之前应用本地 排序过滤 。 它允许加载所有数据 ,但只显示过滤和排序的数据,并在本地分页数据。 要过滤数据,只需设置postData filters属性postData 。 通过使用带有默认loadFilterDefaults: true选项的filterToolbar ,可以看到当前应用的filter,这对用户很有帮助。