JQuery DataTablesプラグインを使用してテーブルを操作していますが、最近、サーバー側のページ付けとフィルタリングに切り替えました。特に、顧客テーブルにデータを入力するためにデータを返すWebメソッドがあります。
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetCustomers(string jsonAOData, int mode)
{
// ...
}
私のページでは、このコードを使用してAJAX呼び出しを介してデータを取得しています。
var grid = $('#grid').dataTable({
bJQueryUI: true,
bLengthChange: false,
iDisplayLength: listItemsPerPage,
bDestroy: true,
"bProcessing": true,
"bSort": true,
"sPaginationType": "full_numbers",
"bServerSide": true,
"sAjaxSource": "/wsData/GetData.asmx/GetCustomers",
"fnServerData": function (sSource, aoData, fnCallback) {
var jsonAOData = JSON.stringify(aoData);
$.ajax({
//dataType: 'json',
contentType: "application/json; charset=utf-8",
type: "POST",
url: sSource,
data: "{jsonAOData : '" + jsonAOData + "', mode:'0'}",
success: function (msg) {
fnCallback(JSON.parse(msg.d));
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.responseText);
}
});
},
"aoColumnDefs": [
// my columns structure
]
});
ご覧のとおり、Webメソッドに2つのパラメーターを渡します。jsonAOData
ページ付けとフィルタリングのすべての情報を含むパラメーターとmode
、DBからデータをフェッチする方法を定義するパラメーターです。完全に機能しますが、テーブル内のデータを再ロードして、Webメソッドに別の値を渡す必要がありますmode
。
私が見つけたドキュメントを読むfnReloadAjax()
ことは私を助けることができました、しかし私はそれを私の問題に適用する正しい方法を見つけることができません。
私はこの方法を試しました:
grid.fnReloadAjax("/wsData/GetData.asmx/GetCustomers?mode=1");
しかし、それは機能しません。手伝って頂けますか?どこが間違っているのですか?
新しい引数をWebメソッドに渡すにはどうすればよいですか?