我一直在尝试让DataTables.NET与我构建的WebAPI RESTFul服务很好地配合,并且返回的json似乎不适合DataTables正在寻找的东西.我尝试了各种“服务器处理”示例以及我在互联网上找到的一些示例,如
this one,但我不想让WebAPI调用动态.我希望API能够自我记录,以便其他应用程序和其他开发人员也可以轻松地使用API.到目前为止,这就是我所拥有的.
从我的API返回Json.stringify后的JSON数组是这样的:
[{"FirstName":"Gregg","LastName":"Coleman"},{"FirstName":"Ryan","LastName":"May"},{"FirstName":"Sean","LastName":"OConnor"},{"FirstName":"Rebecca","LastName":"Coleman"}]
datatable.net代码如下所示:
$("#data-table").DataTable({ serverSide: true,processing: true,ajax: { url: "http://localhost:55180/api/Person",type: 'GET',dataType: 'json',dataSrc: function(json) { var j = JSON.stringify(json) alert(j); return j; } } });
HTML看起来像这样
<table id="data-table" class="display"> <thead> <tr> <th>First Name</th> <th>Last Name</th> </tr> </thead>
我从dataTables回来的错误是:
“DataTables警告:table id = data-table – 请求第0行第1列的未知参数’1′.有关此错误的详细信息,请参阅http://datatables.net/tn/4.
任何帮助将不胜感激
解决方法
您需要指定JSON中哪些属性对应于哪些列.您还需要将dataSrc设置为”(因为dataTables期望包含JSON项的数组被命名为data)或者只是在dataSrc回调中返回JSON.将dataSrc设置为”似乎是最简单的:
$("#data-table").DataTable({ serverSide: true,columns : [ { data : 'FirstName' },{ data : 'LastName' } ],ajax: { url: "http://localhost:55180/api/Person",dataSrc : '' } });
现在dataTable正确初始化 – > http://jsfiddle.net/2jgt3mn8/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。