Up 编辑:我在另一个项目上试过了。同样的问题,当我尝试将它与 10 个数据列一起使用时,它会给出相同的错误,https://datatables.net/manual/tech-notes/7 .但是我的问题没有定义。现在我确定这与后端无关。此外,当我将两个数据粘贴到一列并将这 10 列降低到 9 列时,它仍然有效。它肯定与列号有关。
我在我的项目中使用 Jquery DataTables。我的大多数表格的列数都很少,但今天我尝试了一个包含 10 列的表格。经过长时间的研究和测试,我发现了一个奇怪的问题,当我定义超过 9 列时,它甚至不会触发获取数据的 JsonResult 操作,但是当我尝试从 DataTable 脚本中删除其中一个数据列时,它会正常触发.它不依赖于要删除的数据列。这全都与列数有关。超过 9 列意味着它不起作用。
我尝试使用“scrollX”选项并为列提供低宽度值。我找不到任何其他解决方案。
这是我的 DataTable 脚本的示例:
$(document).ready(function () {
var table = $('#tblExample').DataTable({
"scrollX": true,
"ordering": false,
"searching": false,
"serverSide": true,
"info": false,
ajax: {
"url": "/ExampleRoute/ExampleController/ExampleAction",
"data": function (d) {
d.tofind= $("#txtToFind").val()
}
},
columns: [
{ data: "Data1" , width:"%5" },
{ data: "Data2" , width:"%5" },
{ data: "Data3" , width:"%5"},
{ data: "Data4" , width:"%5"},
{ data: "Data5" , width:"%5"},
{ data: "Data6" , width:"%5"},
{ data: "Data7" , width:"%5"},
{ data: "Data8" , width:"%5"},
{ data: "Data9" , width:"%5"},
{ data: "Data10" , width:"%5"},
],
fixedColumns: true,
responsive: true
});
});
这是我的表格 Html 示例
<table id="tblExample">
<thead>
<tr>
<th class="example1">Data1Col</th>
<th class="example2">Data2Col</th>
<th class="example3">Data3Col</th>
<th class="example4">Data4Col</th>
<th class="example5">Data5Col</th>
<th class="example6">Data6Col</th>
<th class="example7">Data7Col</th>
<th class="example8">Data8Col</th>
<th class="example9">Data9Col</th>
<th class="example10">Data10Col</th>
</tr>
</thead>
</table>
这与我所说的 Controller / Action 无关。当我尝试使用 9 列时,它完美运行,触发 ExampleController/ExampleAction
但是当超过 9 个数据列时,它甚至不会触发此操作。这也不是关于 <th>
数字,我尝试了更多和更少的数据列,同样只有当少于 10 列时它才有效。有什么解决方案可以让我使用更多的数据列。
最佳答案
好的,我发现问题出在DataTable的ajax发送的请求字符串上。当你想返回太多数据到 DataTable 时,它会使你的查询字符串很长,并阻止从 [HttpGet] 操作中获取数据。如果您遇到此问题,则必须将表的 ajax 类型更改为 POST,并且还必须将 Controller 中的操作定义为 [HttpPost]。
关于javascript - 不能在 DataTable 上定义超过 9 个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46363861/