【问题标题】:DataTables stuck on "Processing" when sorting排序时数据表停留在“处理中”
【发布时间】:2014-03-19 03:10:45
【问题描述】:

下面是文档准备功能

 $('#example').dataTable({
            "bProcessing": true,
            "bServerSide": true,
            "aaSorting": [[2, "asc"]],
            "sAjaxSource": "/userControl/GetUser.php",
            "aoColumnDefs": [{
                "aTargets": [0],
                "mData": "download_link",
                "mRender": function (data, type, full) {
                    return '<a href="/UserDetail.aspx?ID=' + data + '">Detail</a><br/><a href="/UserDetail.aspx?ID=' + data + '">Delete</a>';
                }
            }],
              "aoColumns": [
            { "mData": null },
            { "mData": "LoginId" },
            { "mData": "FirstName" },
            { "mData": "LastName" }
        ]
        });

    var oTable = $('#example').dataTable();

    oTable.fnSort([1, 'asc']);

使用上面的代码,数据表卡在“处理中...”,如下面的屏幕所示,但是如果我删除排序,数据会正确显示,但是每当用户请求对列进行排序时,结果还是一样,是我做错了什么吗?

【问题讨论】:

  • oTable.fnSort([[1, 'asc']]);应该是 oTable.fnSort([1, 'asc']);
  • 我改成了oTable.fnSort([1, 'asc']);,结果还是一样..
  • 表中有多少条记录?
  • @AdamZuckerman 表中有 4 条记录
  • 对4条记录进行排序似乎很麻烦,每次都将排序后的数据拉下来......在本地(在网页上)排序是否更有意义?

标签: javascript jquery asp.net datatables jquery-datatables


【解决方案1】:

我删除了“bServerSide”:true,DataTables 现在可以正确排序和过滤

【讨论】:

  • 但只有一小部分来自您的 ajax 调用的数据。如果您有数百个用户并且想要分页,则需要 bServerSide。然后必须在服务器端进行排序和过滤。
【解决方案2】:

您的服务器端实现必须通过 iSortCol 参数处理排序,使用 fnSort 用于客户端实现,不适用于服务器端

正如@mainguy 在他的评论中所说,删除 bServerSide 将禁用分页和更可能的搜索

查看站点上的 asp.net 示例,因为那是您标记的语言,如果您需要更多帮助,请使用 asp.net 源代码更新您的问题

【讨论】:

    【解决方案3】:

    请查看您的服务器响应与客户端发送的 drawsEcho 属性的计数器值是否相同。

    例如,请求可能包含draw: 11sEcho: 11参数,那么服务器响应必须包含draw: "11"sEcho: "11"

    【讨论】:

      猜你喜欢
      • 2017-04-16
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      相关资源
      最近更新 更多