我正在尝试(和失败)使用内置的ajax源参数加载jQuery DataTable.但是,datatable可显示消息“Loading …”,其中应显示行.
这是我的datatable电话:
$('#my-table').dataTable( {bFilter: false,bInfo: false,bJQueryUI: true,bPaginate: false,bStateSave: false,bSort: false,aoColumns: [ {"sTitle" : "Date"},{"sTitle" : "Our Co."},{"sTitle" : "Their Co."},{"sTitle" : "Note"} ],sAjaxSource: "/contact/company_name/"} );
使用Chrome,我可以看到对/ contact / company_name /的调用正在发生,返回状态200,并具有以下数据:[[[Hello],[Goodbye],[Test1],[Test2]]](其中是我的测试数据).
我还可以看到dataTables.min.js返回错误Uncaught TypeError:无法读取未定义的属性’length’.
我假设我的返回数据格式不正确.有人可以提出解决方案吗?
根据
website
您的服务应返回以下格式的数据:
您的服务应返回以下格式的数据:
{ "aaData": [ [ "row 1 col 1 data","row 1 col 2 data","row 1 col 3 data","row 1 col 4 data" ],[ "row 2 col 1 data","row 2 col 2 data","row 2 col 3 data","row 2 col 4 data" ],[ "row 3 col 1 data","row 3 col 2 data","row 3 col 3 data","row 3 col 4 data" ],[ "row 4 col 1 data","row 4 col 2 data","row 4 col 3 data","row 4 col 4 data" ] ] }
因此,将数组包装在一个对象中,将数组命名为aaData,然后重试.
或者您可以以任何您喜欢的方式命名,但是您需要在数据表初始化中添加sAjaxDataProp参数(例如,您将其命名为数据,如下所示:
$('#example').dataTable( { "bProcessing": true,"sAjaxSource": "/ajaxsource/callmydata","sAjaxDataProp": "data" } );