我使用JQuery DataTables插件與我的表一起工作,最近我切換到服務器端分頁和篩選。特別是,我有一個Web方法返回的數據來填充客戶表:如何使用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方法兩個參數:jsonAOData
,所有的信息,分頁和過濾,以及mode
,定義如何從數據庫獲取數據。 它的工作原理非常完美,但現在我需要在我的表格中實時傳遞數據,傳遞給我的Web方法mode
不同的值。
閱讀文檔我發現fnReloadAjax()
函數可以幫助我,但我找不到正確的方法將其應用於我的問題。
我試着這樣說:
grid.fnReloadAjax("/wsData/GetData.asmx/GetCustomers?mode=1");
但簡化版,它的工作。你可以幫我嗎?我在哪裏做錯了?
如何將新參數傳遞給我的web方法?
注:礦存在跨域設置...但他們卻在同一個域的呼叫沒有(用戶察覺)的區別。 – BlueChippy