JQGridをMVC3アプリケーションに統合するために、JQSuiteのTrirand.Web.MVCdllを使用しています。
JQGridのHTMLヘルパーを使用しているので、ビューには次のものがあります。
@Html.Trirand().JQGrid(Model.MyGrid, "Grid")
次のコードを使用して、ボタンをクリックするだけでグリッドをリロードできることを知っています。
$("#Grid").trigger("reloadGrid");
これにより、グリッドがリロードされ、JQGridを設定するためにコントローラーコードで指定したActionメソッドが呼び出されます。
検索/フィルタリングに使用する他のコントロールがページにあります。これらはアクションメソッドに正常に渡されます。
setGridParamメソッドを見つけました。これは、次のようなことができることを示しているようです。
$("#Grid").setGridParam({ someParam: 'blah' }).trigger("reloadGrid");
またはこれ:
$("#Grid").jqGrid('setGridParam', { postData: { someParam: 'somevalue'} }).trigger("reloadGrid");
しかし、アクションメソッドのsomeParamパラメーターがどちらのメソッドでも満たされません
これらをJQGridに設定して、リロードを実行するときにActionメソッドによって取得されるようにするにはどうすればよいですか?
更新:私は今、別のパラメーターに対してこのメソッドを試しましたが、機能します!
だから今私は持っています:
$("#Grid").jqGrid('setGridParam', { postData: {
someParam: 'somevalue',
paramTwo: ' some value',
paramThree: 'some other value'
} }).trigger("reloadGrid");
someParamは機能しませんが、paramTwoとParamThreeは機能します。
変!
1つのパラメータが機能しなくなる原因は何ですか?
UPDATE2: 次のようにOlegの提案を使用します:
var myGrid = jQuery("#Grid").jqGrid({
postData: {
someParam: function () { return $("#txtBox1").val(); },
paramTwo: function () { return $("#txtBox2").val(); },
paramThree: function () { return $("#txtBox3").val(); }
}
});
myGrid.trigger('reloadGrid');
...どの値も送信されません。リロードを実行する前に、JQueryが正しい値を返すことを検証しました。