我有此数据表声明:
table = $("#table").DataTable({
"ajax": {
"url": '@Url.Action("Search", @ViewContext.RouteData.Values["controller"].ToString())',
"type": "POST",
"data": function(d) {},
"datatype": "json"
},
"language": {
"search": "",
"searchPlaceholder": " Search"
},
"select": {
"style": 'multi'
},
"ordering": true,
"lengthChange": false,
"columns": [{
"data": "",
"targets": 0,
"className": "control",
"orderable": false,
"searchable": false
}, {
"data": function(data, type, row, meta) {
var url = '@Url.Action("Read", @ViewContext.RouteData.Values["controller"].ToString())/' + data.Id;
return "<a href='" + url + "'>" + data.Application + "</i></a>"
},
"name": "Application"
}, {
"data": "Logged",
"name": "Logged",
"render": function(data) {
var d = moment(data).format("YYYY-MM-DD hh:mm:ss");
return d;
}
}, {
"data": "Level",
"name": "Level"
}, {
"data": "Exception",
"name": "Exception"
}, {
"data": "Message",
"name": "Message"
}, {
"data": "UserName",
"name": "UserName"
}, {
"data": "ServerName",
"name": "ServerName"
}, ],
"responsive": {
"details": {
"type": "column"
}
},
"processing": true,
"serverSide": true,
}).columns.adjust().responsive.recalc();
new $.fn.dataTable.FixedHeader(table);
这是我的表头声明:
<thead>
<tr>
<th></th>
<th>Application</th>
<th>Logged</th>
<th>Level</th>
<th>Exception</th>
<th>Message</th>
<th>UserName</th>
<th>ServerName</th>
</tr>
</thead>
这个想法是,第一列或目标0应该位于按钮所在的位置以展开或折叠该行。但是,当我运行应用程序时,出现此错误
DataTables警告:表id = table-请求的未知参数”用于第0行第0列。有关此错误的更多信息,请参见http://datatables.net/tn/4
说我的第0列参数不能为空。但是我不确定应该在里面放什么。
此外,由于某种原因,即使该列被禁用,排序箭头仍会出现。但是,单击时箭头不会改变或没有任何作用。
答案 0 :(得分:0)
您有8列,但其中只有7列的数据。因为您正在使用服务器端处理,并且该行没有数据,所以需要将"defaultContent": ""
添加到列选项中,如下所示:
"columns": [{
"data": "",
"targets": 0,
"className": "control",
"orderable": false,
"searchable": false,
"defaultContent": ""
},
使用"data": null
可以达到相同的目的,但是如果不处理null值,则很可能会返回[object Object]
。