带有 ajax 的 DataTables 1.10.6,为第 0 行请求未知参数 0
Posted
技术标签:
【中文标题】带有 ajax 的 DataTables 1.10.6,为第 0 行请求未知参数 0【英文标题】:DataTables 1.10.6 with ajax, requested unknown parameter 0 for row 0 【发布时间】:2015-08-27 07:26:46 【问题描述】:我是使用 DataTables 的新手,在我想切换到服务器端处理之前,它一直运行良好。
感觉就像我开始接近它的工作,它现在给我一个错误并显示正确数量的行但没有任何数据。
所以我得到了错误:
DataTables 警告:表 id=dataTables-outputTest - 请求第 0 行的未知参数“0”。有关此错误的详细信息,请参阅https://www.datatables.net/manual/tech-notes/4
这是我的 js:
$(document).ready( function ()
$('#dataTables-outputTest').DataTable(
"processing": true,
"serverSide": true,
"ajax": "/TestData/data-source"
);
);
这是我试图放入表中的 JSON:
"data": [
"cycle_p": 628320,
"designation": "C1",
"gear": "R660",
"cycle_k": 204000,
"reportnr": "NA05006"
],
"draw": "1",
"recordsFiltered": 1,
"recordsTotal": 1
不知道这是否重要,但我使用的是 Django,输出是来自不同模型的属性的混合。
以下是相关的 html:
<div class="dataTable_wrapper">
<table class="table table-bordered table-hover" id="dataTables-outputTest">
<thead>
<tr>
<th>Report</th>
<th>Test</th>
<th>Gear</th>
<th>Cycle K</th>
<th>Cycle P</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
非常感谢一些帮助,因为数据库必须能够在不减慢一切速度的情况下大幅增长。
【问题讨论】:
好的,所以我在清理 html 并在此处发布时删除了一些内容。所以我摆脱了那个错误信息。现在我被困在处理上。 【参考方案1】:你需要指定哪些数据对应哪些列:
$('#dataTables-outputTest').DataTable(
"processing": true,
"serverSide": true,
"ajax": "/TestData/data-source",
columns : [
data : "cycle_p" ,
data : "destination" ,
data : "gear" ,
data : "cycle_k" ,
data : "reportnr"
]
);
这将按照在列中声明的顺序生成带有<td>
的行。如果您有其他布局,和/或另外 <td>
不应该从 JSON 接收数据,您可以使用 columnDefs
代替:
columnDefs : [
data : "cycle_p", targets : 0 ,
data : "destination", targets : 8 ,
data : "gear", targets : 3 ,
data : "cycle_k", targets : 2 ,
data : "reportnr", targets : 1
]
其中 target 是列索引。
【讨论】:
是的,我注意到了,但设法通过重新排序来解决它。但这是一个很好的提示,我将来可能需要它。【参考方案2】:您在数据中使用Objects,因此您需要使用columns.data 将对象属性与表列匹配。请看下面的例子:
$('#dataTables-outputTest').DataTable(
"processing": true,
"serverSide": true,
"ajax": "/TestData/data-source",
"columns": [
"data": "cycle_p" ,
"data": "designation" ,
"data": "gear" ,
"data": "cycle_k" ,
"data": "reportnr"
]
);
【讨论】:
以上是关于带有 ajax 的 DataTables 1.10.6,为第 0 行请求未知参数 0的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jQuery.dataTables 1.10 向 ASP.NET WebMethod 后端发送和接收 JSON?