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>

これが現在の動作です。検索アイコン (または検索ボタン) をクリックすると、ダイアログ ウィンドウで列フィールドを演算子 (つまり、"name" "contains" "...") で複数検索できます。必要なのは、検索に追加のクエリを含めて、サーバー側でクエリをさらに絞り込むことです...つまり、追加の検索基準「名前の長さ」「より大きい」「...」が必要だと言います。1) 相対列がなくても、検索ドロップダウン リストに条件を追加できますか? 2) サーバーに送信された JSON.filters にクエリを追加するにはどうすればよいですか? すなわち

filters: "{"groupOp":"AND","rules":[{"field":"nameLength","op":"gt","data":"4"}]}"

サーバー側では、nameLenght のセッターとゲッターを用意し、それに応じて休止状態の基準クエリを実行して、正しい行を gridModel に返します。

何か助けはありますか?

ありがとう

4

0 に答える 0