搜索网格为searchString,searchOper和searchField返回null值

时间:2013-03-20 06:28:39

标签: jqgrid

我在项目中使用 struts2 hibernate ,我正在使用 jqgrid 进行数据显示。 现在我想将 jqgrid搜索窗口重定向到链接。我已经通过以下代码

完成了这项工作
     $(document).ready(function() 
     {
        $("#link1").click(function()
        {
            $("#gridtable").jqGrid ('searchGrid',{multipleSearch:false, 
                multipleGroup: true,
                recreateFilter: true,
                onSearch: function(event,data)
                {
                    document.location.href="jasperPdf";                      
                }
            });
            return false;
        });
    });

我的链接代码是

<s:a id="link1">PDF Report</s:a>

它会正确显示搜索窗口。但是当我单击搜索网格窗口上的“查找”按钮时,它返回searchString, searchOper and searchField null 。所以我无法进行任何进一步的操作。请指导我......

谢谢。

2 个答案:

答案 0 :(得分:2)

如果高级搜索(您已通过将multipleGroup设置为true而激活)jqGrid未使用您提到的参数,但它正在使用{{ 1}}参数。此参数将包含描述所选搜索选项的对象,类似于此:

filters

当然,该对象将被序列化为JSON,因此您需要在服务器端对其进行反序列化。这些字段具有以下含义:

  • { "groupOp":"OR", "rules":[{"field":"a.id","op":"eq","data":"1"}], "groups":[ { "groupOp":"AND", "rules":[{"field":"a.id","op":"eq","data":"2"}], "groups":[...] } ] } 确定在范围
  • 范围内的规则和组之间应使用哪个运算符
  • groupOp包含一系列过滤器规则
  • rules这相当于规则的field
  • searchField这相当于规则的op
  • searchOper searchString`用于规则
  • data this is the equivalent of包含一组子组

您可以阅读更多here

<强>更新

您需要将参数添加到要重定向的网址,例如,在单一搜索的情况下,它可能如下所示:

groups

答案 1 :(得分:0)

当我遇到这篇帮助我找到解决方案的相关文章时,我希望填充隐藏的字段:

\$.extend(\$.jgrid.search,{Find:"Filter Results", caption:"RHZ Results Filter",
    onSearch: function() {
        var gridPostData = jQuery("#tablegrid").jqGrid('getGridParam','postData');
            \$.each(gridPostData, function(index, value){
                if (index == 'searchField')
                    {\$('#searchField').val(value);}
                else if (index == 'searchString')
                    {\$('#searchString').val(value);}
                else if (index == 'searchOper')
                    {\$('#searchOper').val(value);}
                else {}
             })},
        closeAfterSearch:true,
        odata: [{ oper:'eq', text:'equal'},
            { oper:'cn', text:'contains'},
            {oper:'bw', text:'begins with'},{oper:'ew', text:'ends with'}
            ]

});