我在项目中使用 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 。所以我无法进行任何进一步的操作。请指导我......
答案 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'}
]
});