web-dev-qa-db-ja.com

loadonceをtrueに設定したjqgrid reloadGrid

1つのページで2つのjqgridを使用しています。私が使用した2番目のグリッドloadonce: true 2番目のグリッドで列を並べ替える必要があるため。サーバーのポストバック後に両方のグリッドをリロードする必要があります。 (2番目のグリッドに更新された値を表示する必要があります)。最初のグリッドはloadonce属性を使用しないため、正常に再読み込みされます。私の質問は、loadonce属性とreloadGridを一緒に使用できるかどうかです。 (グリッドにloadonce属性を動的に設定することにより)または、この場合、サーバー側の並べ替えを行う必要がありますか?アドバイスをお願いします。前もって感謝します。

19
Sam

loadonce:true jqGridを使用する場合、グリッドからデータを最初にロードした後、datatypeパラメーターを「ローカル」に変更します。次のグリッドの再読み込み(並べ替え、ページング、フィルタリング)はすべてローカルで機能します。サーバーからグリッドデータをもう一度更新する場合は、datatypeを元の値( 'json'または 'xml')に設定する必要があります。例えば:

$("#list").setGridParam({datatype:'json', page:1}).trigger('reloadGrid');

更新:無料のjqGrid は、最初のリリース以降、reloadGridfromServer: trueオプションをサポートしていますバージョン4.8)。したがって、次のようなコードを使用できます

$("#list").trigger("reloadGrid", { fromServer: true, page: 1 });

上記と同じことを行います。主な利点:このようなコードは、datatype"json""jsonp""xml"など)の初期値で問題なく機能します。無料のjqGridは、datatypeの元の値を内部dataTypeOrg内に保存してから、"local"に変更します。

無料のjqGridのもう1つの便利なオプションは、reloadGridOptionsのデフォルトのオプションを指定できるnavGridのパラメーターreloadGridです。したがって、たとえば、

loadonce: true,
navOptions: { reloadGridOptions: { fromServer: true } }

navGridのデフォルトを追加設定するjqGridのオプション。その結果、ナビゲーターバーの[再読み込み]ボタンをクリックすると、ローカルの再読み込みではなく、サーバーからグリッドが再読み込みされます。

69
Oleg
$("#shoppingCatalog").jqGrid('GridUnload');

構造が削除され、コードは次のサーバーコールバックからのデータでグリッドを再構築できます。

ただ、私にとっては、次の行ではloadonce:true jqGridのデータを更新するには不十分でした。

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

その行を呼び出した後、JSONデータを読み込んでjqGridに入力するコードを呼び出そうとしましたが、グリッドの行が更新されませんでした。

私の解決策は、jqGridを強制的にunloadし、その後関数を呼び出すことでしたそれを再作成します。

$("#MikesGrid").jqGrid('GridUnload');

たぶん私は不運だったのかもしれません。

ところで、機会があれば、jqGridに2つのボタンを追加する汎用JavaScript関数の記述方法を記述します。1つは(loadonce)データを更新し、もう1つはjqGridデータを実際のExcelファイルにエクスポートします。 、私のライブラリを使用:

jqGridをExcelファイルにエクスポート

再利用可能なコードが好きです。

0
Mike Gledhill

ニースは過去1週間試行しましたが、解決策は完璧な使用法です

jQuery("#datalist").jqGrid().setGridParam(
    {
        datatype:'xml', 
        page:1, 
        url : '<%=request.getContextPath()%>/PreviewReport?cmd=1&fromdate='+vfromDate+'&todate='+vtoDate+'&status='+vstatus+'&keyword='+vkeyword+'&mdn='+vmdn+'&filetype='+vfiletype
    }
).trigger("reloadGrid");

loadonce:false

0
Kiran Jujare