11

trueに設定されたグリッドでjqGridナビゲーターのリロードボタンを使用loadonceします。

現在、リロードボタンはデータを取得するためにサーバーに戻りません-最新のデータを取得するためにリロードをサーバーに移動するにはどうすればよいですか?

代わりにコールバックを使用しbeforeRefreshてグリッドdataをに設定できると思いますが、メソッドを構成する方法すらわかりません-ドキュメントを本当に理解していません。jsonlocalbeforeRefresh

4

2 に答える 2

22

問題を抱えているのはあなただけではありません。私は前に同じ質問に答えました。サーバーからグリッドコンテンツをリロードするには、datatypeパラメーターを元の値「json」または「xml」にリセットしてから、グリッドを更新する必要があります。例えば

jQuery("#list").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');

更新: beforeRefreshイベントハンドラー内の行を呼び出すには、次のようにします

jQuery("#list").jqGrid('navGrid','#pager',
  { edit:false,view:false,add:false,del:false,search:false,
    beforeRefresh: function(){
        alert('In beforeRefresh');
        grid.jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
    }
  });

古い質問から例を変更しました。ここで更新ボタンをクリックすると、コードがどのように機能するかをライブで確認できます。

更新2無料のjqGridはいくつかの新しいオプションをサポートします。reloadGridイベントはfromServer: true、サーバーからのデータの強制的な再ロードに使用できるパラメーターをサポートし、[更新]ボタンをクリックしたときに使用されるオプションを指定するために使用できるオプションをnavGridサポートします。したがって、上記のコードは次のようになります。reloadGridOptionsreloadGrid

$("#list").jqGrid("navGrid", {
    edit: false,
    add: false,
    del: false,
    search: false,
    reloadGridOptions: { fromServer: true }
});

ちなみに、navOptionsjqGridのオプションを使用してのデフォルトオプションを指定できますnavGrid(wikiの記事を参照)。それは次のようなコードを書くことを可能にします

$("#link").jqGrid({
    // all typical jqGrid parameters
    datatype: "json", // or "xml"
    loadonce: true,
    pager: true, // no empty div for page is required
    navOptions: {
        edit: false,
        add: false,
        del: false,
        search: false,
        reloadGridOptions: { fromServer: true }
    }
}).jqGrid("navGrid");
于 2010-09-22T19:00:42.043 に答える
2

私は次の設定を試しましたが、動作します。

<script type="text/javascript">
jQuery(function() {
    jq("#YOUR-GRID-ID").jqGrid({
        ...
        loadonce: true,
        ...
    });
    jQuery("#refresh_YOUR-GRID-ID").click(function(){
        jQuery("#YOUR-GRID-ID").setGridParam({datatype: 'json'});
        jQuery("#YOUR-GRID-ID").trigger("reloadGrid");
    });
});
</script>
于 2011-01-06T14:30:05.903 に答える