我想使用数据表的ajax属性从Web服务填充jquery数据表,所以我仍然可以进行客户端处理。
我在想这样的事情:
$('#example').dataTable(
{ "ajax": { "url": "../.NET webservice", "type": "POST" } } );
如果可以的话,我需要从 .NET Web 服务返回数据作为数组的数组?
例如
{ "data": [ [ "Tom", "Utah", "Koala", "Kite"],
["Bob", "New Mexico", "Kangaroo", "Kite"] ] }
您能确认一下吗? 我没有看到任何很好的例子来说明如何做到这一点。
提前致谢...
您可以使用以下方式获取服务器数据
$("#example").dataTable({
"sAjaxSource" : "../.NET",
"fnServerData" : function(sSource, aoData, fnCallback) {
aoData.push({
"name" : "param1",
"value" : val1
}, {
"name" : "param2",
"value" : val2
});
$.getJSON(sSource, aoData, function(json) {
fnCallback(json)
});
}
});
或者您可以使用:-
$("#example").dataTable({
"sAjaxSource" : "../.NET?param1=value&pram2=value2"
});
唯一的一点是响应应该是来自服务器的 json 格式。
像这样调用ajax是可能的。
$('#example').dataTable( { "ajax": { "url": "../.NET webservice", "type": "POST" } } );
但是 datatable 能够从任何 json 读取数据,因此这取决于您希望服务以哪种形式返回数据。您只需要根据您的服务发送的数据来处理数据。最好的方法是发送对象数组。
我使用一个函数,作为“ajax”数据表选项传递:
function getData(data, callback, settings) {
// settings contain info about data start index, number of records to request, sorting options, etc...
//settings._iDisplayLength, settings._iDisplayStart
// got some data into arrayOfData (via ajax request)
callback({ data: arrayOfData, recordsTotal: totalRecordsCount, recordsFiltered: totalRecordsCount });
}
var dataTableOptions = {
// some column settings
// and ajax settings:
processing = true;
serverSide = true;
ajax = getData;
}
$(dataTableTargetElement).dataTable(dataTableOptions);