1

我正在使用 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。

有什么帮助吗?

谢谢

4

0 回答 0