我正在使用Hibernate + Struts2 + Struts2-jquery(jqgrid)+ freemarker运行webapp。我正在尝试创建一个jqgrid(JSON)来向用户显示一些结果,并使用multisearch启用一些复杂的数据过滤。我有标准功能正常工作。 这是我的ftl:
<div id="mygridfilter">
<@sj.submit id="grid_edit_searchbutton" value="Search" onClickTopics="searchgrid" button="true"/>
<@sj.submit id="grid_edit_colsbutton" value="Show/Hide Columns" onClickTopics="showcolumns" button="true"/>
<@sj.submit id="grid_reload_button" onClickTopics="reloadItems" value="Reload" button="true"/>
</div>
<hr />
<@sjg.grid
id="gridedittable"
caption="Glycobase Users"
dataType="json"
href="json_table.action"
pager="true"
navigator="true"
navigatorSearchOptions="{multipleSearch:true,
sopt:['cn'],
reloadAfterSubmit:true,
}"
gridModel="gridModel"
reloadTopics="reloadItems"
rowList="10,15,20"
rowNum="15"
rownumbers="true"
sortname="userName"
sortorder="asc"
navigatorAdd="false"
navigatorEdit="false"
navigatorDelete="false"
navigatorView="true"
width="800"
prmNames=""
resizable="true"
altRows="true"
navigatorExtraButtons="{
seperator: {
title : 'seperator'
},
hide : {
title : 'Show/Hide',
icon: 'ui-icon-wrench',
topic: 'showcolumns'
},
alert : {
title : 'Alert',
onclick: function(){ alert('Grid Button clicked!') }
}
}"
shrinkToFit="true"
>
<@sjg.gridColumn name="userName" index="contributorName" title="Contributor Name" sortable="true"/>
<@sjg.gridColumn name="email" index="email" title="Email" sortable="true"/>
<@sjg.gridColumn name="fullName" index="fullName" title="Full Name" sortable="true"/>
</@sjg.grid>
<script>
和顶部的一些javascript:
<script>
$.subscribe('showcolumns', function(event,data) {
$.struts2_jquery.require("js/plugins/grid.setcolumns.js");
$("#gridedittable").jqGrid('setColumns',{});
});
$.subscribe('searchgrid', function(event,data) {
$("#gridedittable").jqGrid('searchGrid', {
multipleSearch:true,
sopt:['cn'],
reloadAfterSubmit:true
}
);
});
</script>
这是当前行为:当我点击搜索图标(或搜索按钮)时,对话窗口允许使用某个运算符(即“名称”“包含”“...”)对列字段进行多重搜索。我需要的是在搜索中包括一些额外的查询以进一步改进我在服务器端的查询...即,说我需要额外的搜索条件“名称长度”“更大”“......”。 1)我可以在没有相关列的情况下向搜索下拉列表添加条件吗? 2)如何将JSON.filters附加到服务器发送查询?即。
filters: "{"groupOp":"AND","rules":[{"field":"nameLength","op":"gt","data":"4"}]}"
在服务器端,我将为nameLenght设置setter和getter,并相应地执行hibernate条件查询以将正确的行返回到gridModel。
任何帮助?
由于