【问题标题】:DataTables ServerSide sort not working - mDataPropDataTables ServerSide 排序不起作用 - mDataProp
【发布时间】:2012-08-19 05:30:17
【问题描述】:

我创建了以下启用服务器端处理的数据表:

$(document).ready(function() {
    oTable = $('#example').dataTable( {
        "bServerSide": True,
        "sAjaxSource": "source.php",
        "aaSorting": [[0,"asc"]],
        "aoColumns": [
            { "mDataProp" : "Name",
               "sType": "string-case" },
            { "mDataProp" : "Priority",
               "sType": "string-case" },
            { "mDataProp" : "Action",
               "sType": "string-case" }
        ]
    } );
} );

名称、优先级和操作都是我想要排序的字符串。每当我单击列标题时,它只会重新加载表格。可能是一个愚蠢的问题,但我是否需要在服务器端进行所有排序(使用 iSortCol_0 和 sSortDir_0 作为我的标识符)?是否可以在不刷新表格的情况下对客户端进行排序,并根据名称对其进行排序?

【问题讨论】:

    标签: jquery ajax sorting datatables server-side


    【解决方案1】:

    当使用bServerSide: true时,DataTables 只会询问适合当前页面的数据。例如,当您进入下一页时,它将询问接下来的 10 条记录。 DataTables 无法在客户端进行排序,因为它不知道整个数据集。

    如果您只是想从 ajax 源中提取整个数据集,您可以使用 sAjaxSource 选项。

    $(document).ready(function() {
        $('#example').dataTable( {
            "bProcessing": true,
            "sAjaxSource": '../ajax/sources/arrays.txt'
        } );
    } );
    

    示例:http://datatables.net/release-datatables/examples/data_sources/ajax.html

    【讨论】:

    • 好的,这可能就是我要找的。我认为sAjaxSource 需要bServerSide 是正确的,但事实并非如此,我实际上并不需要服务器端处理。我现在遇到的问题是oSort[(sDataType ? sDataType : "string") + "-" aaSort[k][1]] is not a function 错误。任何想法为什么会这样?是因为我想对 JSON 进行排序吗?
    • 我可以同时使用分页和排序吗??
    【解决方案2】:

    不幸的是,您必须自己在服务器端处理所有排序、分页、过滤。

    我不知道您使用的是哪种服务器端技术,但数据表homepage 在 PHP 中有一些示例。此外,还有一些包装器可以在 ASP.NET MVC 的服务器端使用数据表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多