【问题标题】:How to refresh jqGrid search dialog with postData filters如何使用 postData 过滤器刷新 jqGrid 搜索对话框
【发布时间】:2013-05-07 21:55:21
【问题描述】:

我正在使用 jqGrid,到目前为止一切正常。但现在我正在努力让用户能够保存他们的搜索,以便他们以后可以检索它们和/或将它们应用于不同的网格。事实证明,节省是很容易的部分。我可以让网格根据指定的 postData 过滤器进行过滤,但是搜索对话框没有按照过滤条件刷新。这是我的一个小测试:

$("#grid").jqGrid('navGrid','#pager', {edit: false, add: false, del: false, refresh: false, searchtext: 'Search'}, {}, {}, {},
{
    multipleSearch: true,
    closeAfterSearch: true,
    closeOnEscape: true,
    searchOnEnter: true,
    Find: "Search",
    afterShowSearch: function ()
    {
       ...// code to create the save search buttons goes here

       $("#fbox_" + gridID + "_save").bind('click', function()
       {                    
           var filters = {"groupOp":"AND","rules":[{"field":"id","op":"eq","data":"2"}]};
           $('#grid').jqGrid('setGridParam',
           {
               postData: {'filters': filters}, search: true}).trigger('reloadGrid');
           }
     }
});

我已经尝试了几件事,但似乎没有任何东西可以让高级搜索对话框更新。

附带说明...我没有将重新创建过滤器设置为 true。似乎某处存在错误...将重新创建过滤器设置为true,当您应用搜索时,关闭对话框,重新打开搜索对话框,点击“重置”,关闭对话框,然后返回,没有可用的选项。我得到的只是“分组”选项(AND/OR)。我在 Oleg 的一些演示中对此进行了测试,结果是一样的,所以这不仅仅是我的代码。

【问题讨论】:

标签: jqgrid


【解决方案1】:

设置 recreateFilter: true 解决了显示问题。但是,它仍然存在这样的问题:单击“重置”按钮,关闭搜索对话框,然后返回搜索对话框,您只能看到组运算符下拉菜单(“AND/OR”)和'+' 按钮旁边。我可以通过触发“+”按钮上的点击事件来解决这个问题

var tableRows = $('#fbox_grid > table').find('tr');

if (tableRows.length == 2)
{
    $('input[type="button"]').trigger('click');
}

现在一切正常。

【讨论】:

  • 您好,Jay,您的解决方案可能对我有用,我可以联系您吗? (电子邮件?)
猜你喜欢
  • 1970-01-01
  • 2013-03-25
  • 2011-08-14
  • 2011-02-25
  • 2012-09-18
  • 1970-01-01
  • 1970-01-01
  • 2011-09-11
  • 2014-09-05
相关资源
最近更新 更多