Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

jqGridのフィルタリング条件を保持する(パート2)

はじめまして、fujiiです。

以前(2012-01-24 - Taste of Tech Topics)、ishidaさんが

バージョン4.3.1になると、フィルタリングに使用した検索条件が捕まえられない。

と話がありましたが、方法が見つかったので紹介します。

ちょっとおさらい

jqGridのテーブルの下に出せるアイコンをクリックすると出現する、
コイツを捕まえます。

サンプルに書いているのは、こんなコードです。

$("#sample1").jqGrid('navGrid','#pager1',{ 
  add:false, edit:false, del:false, search:true},
{}, {}, {}, {multipleSearch: true}});

捕まえ方

どうやら、バージョン4.0.0からnavGridの仕様が変わったようで、
beforeShowSearchではなく、onSearchを使うだけでした(^^;

{multipleSearch: true,
  onSearch: function(){
    var filters = $('#sample1').jqGrid('getGridParam', 'postData');
    $('#filters').val(filters.filters);
  }
});
// クリックの部分も改良しました。

余談ですが

beforeShowSearchが聞かないという話がありましたが、
実行するタイミングがフィルタ検索ダイアログを開いたタイミング
なっているようです。

また、afterShowSearch というfunctionも定義できるようですが、
違いがあまり分からず。。。

ほかにもcloseAfterSearchtrueにすると、
検索ボタン押下後にダイアログが閉じるなど、
機能が増えているようです。

調べてみると、色々と発見がありそうですね。