DataTables 警告:为行 (0) 请求了未知参数 (6)
DataTables warning: Requested unknown parameter(6) for row (0)
我查看了一些关于此错误的 SO 问题,但 none 的答案解决了我的问题。
HTML
<div id="assign_time_invoice_dialog" title="Select Time" class='assign_time_invoice dialog' style="display:none">
<table id="time_dt" class="display dt_selectable" cellspacing="0" cellpadding="0" width="100%">
<thead>
<tr>
<th>Description</th>
<th>Rate</th>
<th>Date</th>
<th>Length</th>
<th>WIP</th>
<th>Job</th>
</tr>
</thead>
</table>
</div>
jQuery
$( "#assign_time_invoice_dialog" ).dialog({
resizable: false,
height:600,
width:800,
modal: true,
open: function( event, ui ) {
var data = {client_id:invoice_client_id};
if (!dataTableCust) {
dataTableCust = $('#time_dt').DataTable( {
'ajax': {
'url': 'ajax_time_dt.php',
'data': data
},
"columns": [
{"data": "timetrack_description"},
{"data": "timetrack_user_rate"},
{"data": "timetrack_start"},
{"data": "timetrack_length"},
{"data": "wip_description"},
{"data": "job_description"}
],
"columnDefs": [
{
"targets": [6],
"visible": false,
"searchable": false,
}
],
"iDisplayLength": 100,
"scrollX": true,
"scrollY": "410px",
"scrollCollapse": true,
"pagingType": "simple",
"oLanguage": {
"sSearch": "Search for time:"
},
} );
}
},
buttons : button_options
});
JSON 回应
{
"data":[
{
"DT_RowId":"1",
"timetrack_description":"Wednesday timetrack",
"timetrack_user_rate":"100.00",
"timetrack_start":"24\/06\/2015",
"timetrack_length":"10:42",
"wip_description":"Accounts",
"job_description":"fifth test job"
},
{
"DT_RowId":"42",
"timetrack_description":"New one",
"timetrack_user_rate":"80.00",
"timetrack_start":"30\/06\/2015",
"timetrack_length":"01:30",
"wip_description":"iXBRL",
"job_description":"None"
}
]
}
使用此代码,我得到了标题中发布的错误。单击警报上的“确定”后,DataTable 将按应有的方式填充数据。检查行也会显示分配给每一行的正确 ID。那么为什么我会看到错误?
如果我将 "targets"
从“6”更改为“5”,那么我将不再看到该错误,但我也不再看到 table 中的最后一个 'Job' 列.
知道我做错了什么吗?
谢谢,
您正在通过在目标 [6] 和 visible:none 上使用 columndefs 来隐藏第 7 列
(https://datatables.net/reference/option/columnDefs)
如果将其更改为 5,则会隐藏第 6 列 ({"data": "job_description"})
另一个问题似乎是您的 header table 的列少于数据本身。
我查看了一些关于此错误的 SO 问题,但 none 的答案解决了我的问题。
HTML
<div id="assign_time_invoice_dialog" title="Select Time" class='assign_time_invoice dialog' style="display:none">
<table id="time_dt" class="display dt_selectable" cellspacing="0" cellpadding="0" width="100%">
<thead>
<tr>
<th>Description</th>
<th>Rate</th>
<th>Date</th>
<th>Length</th>
<th>WIP</th>
<th>Job</th>
</tr>
</thead>
</table>
</div>
jQuery
$( "#assign_time_invoice_dialog" ).dialog({
resizable: false,
height:600,
width:800,
modal: true,
open: function( event, ui ) {
var data = {client_id:invoice_client_id};
if (!dataTableCust) {
dataTableCust = $('#time_dt').DataTable( {
'ajax': {
'url': 'ajax_time_dt.php',
'data': data
},
"columns": [
{"data": "timetrack_description"},
{"data": "timetrack_user_rate"},
{"data": "timetrack_start"},
{"data": "timetrack_length"},
{"data": "wip_description"},
{"data": "job_description"}
],
"columnDefs": [
{
"targets": [6],
"visible": false,
"searchable": false,
}
],
"iDisplayLength": 100,
"scrollX": true,
"scrollY": "410px",
"scrollCollapse": true,
"pagingType": "simple",
"oLanguage": {
"sSearch": "Search for time:"
},
} );
}
},
buttons : button_options
});
JSON 回应
{
"data":[
{
"DT_RowId":"1",
"timetrack_description":"Wednesday timetrack",
"timetrack_user_rate":"100.00",
"timetrack_start":"24\/06\/2015",
"timetrack_length":"10:42",
"wip_description":"Accounts",
"job_description":"fifth test job"
},
{
"DT_RowId":"42",
"timetrack_description":"New one",
"timetrack_user_rate":"80.00",
"timetrack_start":"30\/06\/2015",
"timetrack_length":"01:30",
"wip_description":"iXBRL",
"job_description":"None"
}
]
}
使用此代码,我得到了标题中发布的错误。单击警报上的“确定”后,DataTable 将按应有的方式填充数据。检查行也会显示分配给每一行的正确 ID。那么为什么我会看到错误?
如果我将 "targets"
从“6”更改为“5”,那么我将不再看到该错误,但我也不再看到 table 中的最后一个 'Job' 列.
知道我做错了什么吗?
谢谢,
您正在通过在目标 [6] 和 visible:none 上使用 columndefs 来隐藏第 7 列 (https://datatables.net/reference/option/columnDefs)
如果将其更改为 5,则会隐藏第 6 列 ({"data": "job_description"})
另一个问题似乎是您的 header table 的列少于数据本身。