2

私は jqGrid を使用していますが、これまでのところすべてがうまく機能しています。しかし現在、ユーザーが検索結果を保存して、後で検索したり、別のグリッドに適用したりできるようにすることに取り組んでいます。節約は実際には簡単な部分であることが証明されています. 指定した postData フィルターに基づいてグリッドをフィルター処理することができますが、検索ダイアログがフィルター基準で更新されません。ここに私が持っている小さなテストがあります:

$("#grid").jqGrid('navGrid','#pager', {edit: false, add: false, del: false, refresh: false, searchtext: 'Search'}, {}, {}, {},
{
    multipleSearch: true,
    closeAfterSearch: true,
    closeOnEscape: true,
    searchOnEnter: true,
    Find: "Search",
    afterShowSearch: function ()
    {
       ...// code to create the save search buttons goes here

       $("#fbox_" + gridID + "_save").bind('click', function()
       {                    
           var filters = {"groupOp":"AND","rules":[{"field":"id","op":"eq","data":"2"}]};
           $('#grid').jqGrid('setGridParam',
           {
               postData: {'filters': filters}, search: true}).trigger('reloadGrid');
           }
     }
});

いくつか試してみましたが、高度な検索ダイアログが更新されないようです。

補足として...フィルターをtrueに設定し直していません。どこかにバグがあるようです... recreate Filter を true に設定して、検索を適用し、ダイアログを閉じて、検索ダイアログを再度開き、[リセット] を押して、ダイアログを閉じてから戻ると、何もありません。利用可能なオプション。私が得るのは「グループ化」オプション(AND / OR)だけです。Oleg のいくつかのデモでこれをテストしましたが、結果は同じでした。これは私のコードだけではありません。

4

1 に答える 1

1

recreateFilter: true を設定すると、表示の問題が解決しました。ただし、「リセット」ボタンをクリックして検索ダイアログを閉じ、検索ダイアログに戻ると、グループ演算子のドロップダウン (「AND/OR」) とその横にある「+」ボタン。「+」ボタンでクリックイベントをトリガーすることで、これを解決できました

var tableRows = $('#fbox_grid > table').find('tr');

if (tableRows.length == 2)
{
    $('input[type="button"]').trigger('click');
}

今、すべてがうまく機能します。

于 2013-05-17T19:36:48.180 に答える