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

时间:2016-12-06 15:09:38

标签: javascript jquery jqgrid free-jqgrid

我使用的是freejqGrid版本4.13.1。我刚刚添加了过滤器工具栏的代码,该代码正常工作,但搜索后搜索参数消失了。搜索工作和一切,但我想将该文本留在工具栏中,直到使用(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: "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");

1 个答案:

答案 0 :(得分:3)

免费的jqGrid 4.13.1引入了新功能 - 根据postData.filters填充过滤器工具栏。请参阅README4.13.1。该功能有一些错误,存在于您的情况下。这些错误在更高版本的免费jqGrid中得到修复。

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

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

还有其他常见情况loadFilterDefaults: true会有所帮助。例如,可以使用loadonce: true选项从服务器加载所有JSON数据。免费的jqGrid允许将loadonce: true选项与forceClientSorting: true结合使用,以便在数据生效之前应用本地 排序过滤显示在网格中。它允许加载所有数据,但只显示过滤和排序的数据,并在本地分页数据。要过滤数据,只需设置filters的{​​{1}}属性即可。使用postData使用默认filterToolbar选项时,会看到当前应用的过滤器,这可能对用户有所帮助。