-1

我正在尝试使用 .dataTable 进行排序,它工作正常,除了一个包含我在其上使用 href 标记的数字的列。没有标签,排序工作正常,但是当我使用标签时,它似乎将它们排序为字符串:

1
2
3
11
14
21

变成:

1
11
14
2
21
etc.

这是代码:

        $('#datatableme').dataTable({
            "aaSorting": [[0, "desc"]],
            "aoColumns": [
                         null,
                         null,
                         null,
                         null,
                         null,
                         null,
                         null
                     ],
            "sPaginationType": "full_numbers",
            "bPaginate": true,
            "bLengthChange": false,
            "bFilter": false,
            "bSort": true,
            "bInfo": true,
            "bAutoWidth": true,
            "iDisplayLength": 40,
            "bStateSave": false
        });

谁能帮我?

4

5 回答 5

2

有一个替代解决方案......您可以在 HREF 之前在 A 标签上简单地添加 ID 或 NAME ...

例如,我正在按名称对表进行排序......当我把

<a href="link">John Doe</a>

数据表搞砸了一切......

所以我只是在 HREF 之前添加 NAME ...看起来像这样:

<a name="John Doe" href="link">John Doe</a>

为我工作。所以我相信你可以尝试这样的事情:

<a name="1" href="link">1</a>
<a name="3" href="link">3</a>
<a name="2" href="link">2</a>

DataTable 应该正常排序。

于 2018-04-17T14:28:33.247 回答
1

您需要将sType列表中任一列的参数设置为html. 像这样的东西:

"aoColumns": [
    { "sType": "html" },
    null,
    null,
    null,
    null,
    null,
    null
],

这意味着单元格中的任何 HTML 都将在排序函数中被忽略。

这是DataTables 文档中的一个工作示例。

于 2013-09-09T13:07:57.200 回答
1

2个选项。

  1. 使用此处找到的自定义排序插件:http: //datatables.net/plug-ins/sorting,它将允许您定义“带数字的 html”的排序类型,它会去除 html 标签,然后按数值而不是对剩余数据进行排序比字符串

  2. 在您的列旁边创建一个幽灵/虚拟列,在列定义中将其设置为不可见,然后使用“iDataSort”指定应在此“隐藏”列上进行排序,当您单击可见列排序按钮时

于 2013-09-09T13:10:13.997 回答
0

DataTables 将尝试自动检测表包含的数据类型,使其能够准确地排序和过滤这些数据

请注意,在 DataTables 1.7 之前,不会自动检测 HTML 类型,因此有必要为列指定 sType

这可能会帮助你

http://www.datatables.net/release-datatables/examples/advanced_init/html_sort.html

于 2013-09-09T13:13:34.940 回答
0

感谢 Lee(和办公室里的人 :)),我找到了答案,这就是它的完成方式:

            $('#datatableme').dataTable({
            "aaSorting": [[0, "desc"]],
            "aoColumns": [
                         null,
                         null,
                         null,
                         null,
                         { "iDataSort": 6 },
                         null,
                         { "bVisible": false }

最后一列与我要组织的那一列相同,但没有 href 标记。这是表格:

                                        <td>
                                            <a href=""><%=arr("num")%></a>
                                        </td>
                                        <td>
                                            <%=arr("Name")%>
                                        </td>
                                        <td>
                                            <%=arr("num")%>
                                        </td>
于 2013-09-09T15:22:44.107 回答