javascript - 不能在 DataTable 上定义超过 9 个列

标签 javascript jquery asp.net-mvc jquery-plugins datatables

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/

相关文章:

javascript - 为什么 jquery-rails 没有加载?

javascript - Highcharts - 棒图时间序列的一种破解

asp.net-mvc - 如何检查 asp.net mvc 中的模型验证错误?

javascript - VSCode - 更改 IntelliSense 内的颜色

javascript - 使用jquery从变量中删除textarea中的所有url

jquery - 使用日期选择器显示日期

javascript - 根据条件删除未选择的文件

c# - 使用 ID 或操作名称的 ASP.NET MVC 路由

javascript - 定期调用 AJAX 函数是否会减慢应用程序速度?

javascript - 将 1 个正方形旋转到第二个正方形的中心点