0

データベースを使用して検索テンプレートを保存およびロードしようとしています。その間、tmplLabel、tmplNames、tmplFilters の値を変更できません。サーバーにアクセスしてデータを取得し、3 つの変数に格納する loadTemplates() 関数を呼び出しています。この関数は、loadComplete() で呼び出されています。テンプレートの値をリセットする方法を教えてください。私はhttp://www.trirand.com/blog/jqgrid/jqgrid.htmlのようなものについて話している

4

1 に答える 1

0

テンプレートの検索は、あまり使用されない興味深い機能です。これを使用するには、検索モジュールのパラメーターtmplNamesであるとtmplFilters(オプションtmplLabelで ) を使用する必要があります。オプションを追加で使用することが重要な場合。したがって、次のオプションを設定できますrecreateFilter: true

var mySearchOptions = {
        // it's just some options which you use
        multipleSearch: true,
        multipleGroup: true,
        recreateFilter: true,
        closeOnEscape: true,
        closeAfterSearch: true,
        overlay: 0
    },
    $grid = $("#grid");

$grid.jqGrid({
    // ... your jqGrid options
    loadComplete: function (data) {
        // you should modify the next line correspond to the place of
        // tmplNames and tmplFilters in the server response
        if (data.tmplNames && data.tmplFilters) {
            mySearchOptions.tmplNames = data.tmplNames;
            mySearchOptions.tmplFilters = data.tmplFilters;
        }
    }
});
$grid.jqGrid('navGrid', {/*navGrid option*/}, {/*Edit options*/}, {/*Add options*/},
    {/*Del options*/},
    mySearchOptions);

あなたはすでに正しいコードを持っていると思いますが、recreateFilter: trueオプションを使用していません。そのため、現在のオプションでダイアログを再作成する代わりに、以前に開いた検索ダイアログが表示されます。

PS jqGrid 4.3.2 のソースをさらに更新することをお勧めします (回答を参照してください)。キーボードのサポートが向上し、検索ダイアログでオプション、コールバック、カスタム コントロールを使用できるようsearchOnEnterになります (回答を参照してください)。closeOnEscapeafterChange

于 2012-04-24T21:54:10.237 に答える