Javascript filterToolbar中的免费jqGrid搜索参数消失
我使用的是的4.13.1版。我刚刚添加了过滤器工具栏的代码,它正在工作,只是搜索参数在搜索后消失了。搜索工作和一切,但我想留在工具栏中的文字,直到清除使用(x)Javascript filterToolbar中的免费jqGrid搜索参数消失,javascript,jquery,jqgrid,free-jqgrid,Javascript,Jquery,Jqgrid,Free Jqgrid,我使用的是的4.13.1版。我刚刚添加了过滤器工具栏的代码,它正在工作,只是搜索参数在搜索后消失了。搜索工作和一切,但我想留在工具栏中的文字,直到清除使用(x) 免费jqGrid 4.13.1引入了新功能-基于postData.filters填充过滤器工具栏。看。该功能有一些bug,这些bug存在于您的案例中。这些错误在更高版本的免费jqGrid中得到修复 您可以通过使用loadFilterDefaults:false(通过使用.jqGrid(“filterToolbar”、{loadFilte
免费jqGrid 4.13.1引入了新功能-基于
postData.filters
填充过滤器工具栏。看。该功能有一些bug,这些bug存在于您的案例中。这些错误在更高版本的免费jqGrid中得到修复
您可以通过使用loadFilterDefaults:false
(通过使用.jqGrid(“filterToolbar”、{loadFilterDefaults:false})
或通过将搜索:{defaultSearch:{cn}
更改为搜索:{defaultSearch:“cn”,loadFilterDefaults:false}
来关闭该功能。另一方面,我建议您更新到当前发布的免费jqGrid:4.13.5版本,或者使用GitHub的最新源代码
搜索选项loadFilterDefaults:false
在许多情况下都非常实用。例如,可以同时使用过滤器工具栏和搜索对话框。如果在“过滤器”工具栏中设置一些过滤器,然后打开“搜索”对话框,则会在对话框中看到当前过滤器。您可以修改它并应用新过滤器。网格将显示新过滤器,但jqGrid的旧版本仍将在过滤器工具栏中显示旧过滤器。我发布了一篇文章,展示了如何根据当前使用的过滤器填充过滤器工具栏。如果使用了filterToolbar
的默认loadFilterDefaults:true
选项,新版本的免费jqGrid将自动刷新过滤器工具栏
还有其他常见的场景,
loadFilterDefaults:true
会有所帮助。例如,可以使用loadonce:true
选项从服务器加载所有JSON数据。Free jqGrid允许将loadonce:true
选项与forceClientSorting:true
组合,在数据显示在网格中之前应用local排序和过滤。它允许加载所有数据,但只显示经过筛选和排序的数据,并在本地分页数据。要过滤数据,只需设置filters
属性postData
。通过使用filterToolbar
和默认的loadFilterDefaults:true
选项,用户将看到当前应用的过滤器,这可能会对用户有所帮助。除非您在网格上手动调用refresh,否则不应清除搜索参数。你能用静态数据重现问题吗?是的,页面上没有太多其他代码,似乎不会再次重新加载。当然,搜索后需要重新加载以加载新数据。我想知道是否需要将搜索参数与数据一起从服务器传递回客户端?我为您制作了小提琴,您的代码运行良好:。注意:我用的是jqGrid 4.6.0,你可以试着在它里面上传4.13.1。谢谢,是的,我把freejqGrid的源代码放在那里(因为我也在制作小提琴),它在那里工作得很好。尽管本地数据有很大不同。我可以在问题代码中看到,当从服务器加载新数据时,搜索被清除。使用本地数据似乎没有太多的重新加载,但这可能只是因为它太快了。@jeffery_the_wind:您使用的是旧版本的免费jqGrid:4.13.1。您应该更新到免费的jqGrid 4.13.5或GitHub的最新代码。或者,您可以使用filterToolbar
的loadFilterDefaults:false
选项。您可以使用搜索:{defaultSearch:“cn”,loadFilterDefaults:false}
更新到新版本,这样就可以在没有loadFilterDefaults:false
选项的情况下工作。@jeffery\u the\u wind:这就是我的意思。新的默认选项loadFilterDefaults:true
很好,但是4.13.1中引入的第一个实现包含一些bug。这些错误在以后的版本中得到修复。因此,我建议更新到版本4.13.5。只有当您现在无法将站点更新为最新的免费jwGrid时,才应使用loadFilterDefaults:false
的解决方法。是的,我理解。我只是想让读者知道,这两种方法都会奏效。你在这件事上做得很好。
$('#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: "Y-m-d", 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");