我是使用DataTables的新手,我一直很好地工作,直到我想切换到服务器端处理。
感觉就像我开始接近它工作一样,它现在给我一个错误并显示正确数量的行但没有任何数据。
所以我收到错误:
DataTables警告:table 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>
非常感谢一些帮助,因为数据库必须能够在不减慢速度的情况下增长很多。
答案 0 :(得分:3)
您在数据中使用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" }
]
});
答案 1 :(得分:2)
您需要指定哪些数据对应于哪些列:
$('#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>
&#39的行。如果您有其他布局,和/或另外<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是列索引。