7

グリッドのリロードをトリガーする jqGrid の外部にフィルターがあります。このエントリは、postData オプションを使用して、それを実装する方法についていくつかの良い洞察を与えてくれました:組み込みの検索/フィルター ボックスを使用せず にjqGrid データをフィルター処理する方法コールする必要があります。これが私の現在のアプローチの要約です。

<script>
  $(document).ready(function() {
    $("#submit").click(function(e) {
      e.preventDefault();
      myGrid.trigger('reloadGrid');
    }); 
  });

var url="${servicesUrl}/projects";

var myGrid = $("#projectList").jqGrid({
    url: url,
    datatype: 'json',
    mtype: 'GET',  
    // ...
});
</script>

[送信] ボタンをクリックするたびにグリッドのリロードがトリガーされるようにするには、コードをどのように構成すればよいですか? それを整理したら、posData 部分を追加できると確信しています。私の問題は、主に呼び出しの全体的なシーケンスにあります。どの呼び出しを ready() 関数内に含めるべきか、および「reloadGrid」を適切に呼び出す方法がわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

6

これが私にとってうまくいったことです。各リクエストが行われる前にプロパティbeforeRequestを更新するイベントにコールバックを設定しました。postData

すべての jqGrid 初期化コードを$(document).ready(function(){});関数内に配置する必要があることに注意してください。そうしないと、テーブル要素がまだ DOM にない可能性があります。

var url="${servicesUrl}/projects";

$(document).ready(function() {
    var $table = $("#projectList");

    $table.jqGrid({
        url: url,
        datatype: 'json',
        mtype: 'GET',  

        beforeRequest: function() {
            var postData = $table.getGridParam('postData');
            //add parameters to postData here
        }
        // ...
    });

    $("#submit").click(function(e) {
        e.preventDefault();
        $table.trigger('reloadGrid');
    }); 
});
于 2013-06-26T14:34:11.133 に答える