2

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

$(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" }
        ]
    } );
} );

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

4

2 回答 2

5

使用bServerSide: trueDataTables 时只会询问适合当前页面的数据。例如,当您进入下一页时,它将询问接下来的 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

于 2012-08-23T16:34:22.097 回答
3

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

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

于 2012-08-23T16:29:56.417 回答