我正在使用 Hibernate + Struts2 + Struts2-jquery (jqgrid) + freemarker 运行一个 webapp。我正在尝试创建一个 jqgrid (JSON) 来向用户呈现一些结果,并使用多重搜索启用一些复杂的数据过滤。我的标准功能工作得很好。这是我的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 发送到服务器的查询?IE
filters: "{"groupOp":"AND","rules":[{"field":"nameLength","op":"gt","data":"4"}]}"
在服务器端,我会为 nameLenght 设置 setter 和 getter,并相应地执行休眠条件查询以将正确的行返回给 gridModel。
有什么帮助吗?
谢谢