我使用jQuery 数据表插件以我的表工作,最近我切换到服务器端分页和过滤。 特别是,我有一个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
,定义如何从数据库获取数据。 它完美的作品,但现在我需要在我的表reaload数据传递给我的web方法不同的价值mode
。
阅读文档,我发现fnReloadAjax()
函数可以帮助我,但我无法找到将它应用到我的问题的正确方法。
我想是这样的:
grid.fnReloadAjax("/wsData/GetData.asmx/GetCustomers?mode=1");
但简化版,它的工作。 你能帮助我吗? 我哪里做错了吗?
我怎样才能通过新的参数传递给我的网页的方法?