jquery datatables:排序类型数字不起作用

时间:2018-04-05 17:23:38

标签: c# jquery datatable columnsorting

我有一个大约20列的数据表。我有一个序列号列,它由完全数值组成,在数据库中定义为int。我花了很多时间试图弄清楚为什么这不起作用但仍然没有线索。我尝试使用sType ='numeric',type ='num',num-html,num-fmt ..似乎没什么用。我要么按以下方式排序:

1
1
10
100

或根本不排序。我检查了我的数据,它没有null或任何非数字值。数据库具有完全整数值,我完全难以理解为什么突然这不起作用。请帮忙。这是我的代码。

<table id="myTable">
    <thead>
        <tr>
            <th>Col1</th>
            <th>Col2</th>
            <th>Col3</th>
            <th>Col4</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td title="Del">
                    Data1
                </td>
                <td>
                    <div>
                        <div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
                            @Html.ActionLink("Edit", "Edit", new { id = item.Id })
                            @Html.ActionLink("Details", "Details")
                            @Html.ActionLink("Delete", "Delete")
                        </div>
                    </div>
                </td>
                <td>
                    Data2
                </td>
                <td>
                    &nbsp;@Html.DisplayFor(modelItem => item.Serial)
                </td>
            </tr>
        }
</table>

以下内容来自我的Layout.cshtml:

var table = $('#myTable').DataTable({
                    "lengthMenu": [[100, 200, 300, 500, -1], [100, 200, 300, 500, "All"]],
                    fixedHeader: true,
                    // "bFilter": false, to turn off search
                    fixedColumns: {
                        heightMatch: 'none'
                    },
                    colReorder: true,
                    stateSave: true,
                    "aoColumnDefs": [
                        { "sType": "numeric", "aTargets": [3] },
                        { "bSortable": false, "aTargets": [0] },
                        { "bSearchable": false, "aTargets": [0] }
                    ]
                });

1 个答案:

答案 0 :(得分:0)

您似乎正在使用jquery数据表库。根据文档,您可以在表的初始化时提供默认的排序列信息:

https://datatables.net/examples/basic_init/table_sorting.html

afterContentOffset.y

编辑:javascript库中使用的其他功能或属性可能会破坏排序。通常,在对这些类型的问题进行故障排除时,我建议删除所有属性,但您使用的属性除外(订单)。然后,您可以重新添加属性以查看是否有任何功能中断。

所以在你的代码中:

0

此外,不确定该不间断的空间是否会影响html中序列ID的值。我会删除它并尝试通过td元素上的css实现间距:

0