使用jQuery处理服务器端的数据表

时间:2015-09-03 11:10:01

标签: javascript jquery datatable server-side-scripting

我是数据表的新手。我试图找到自过去两天以来服务器端处理的解决方案,但没有找到解决方案。

我的JS代码是

this.$("#example").DataTable({
            "processing": true,
            "serverSide": true,
            "ajax": "../employees.json",
            "columns": [{
                "data": "Name"
            }, {
                "data": "Age"
            }, {
                "data": "Country"
            }, {
                "data": "Address"
            }, {
                "data": "Married"
            }]
        });

Datatable以表格格式呈现JSON。但排序,分页和搜索操作无效。它显示了第一页上的所有结果,无论我从下拉列表中选择了多少值

同样在底部显示消息,如"显示0到0的0个条目(从NaN总条目中过滤掉)"

如果我传递serverSide:false。一切正常。但我希望服务器端处理相同的

任何帮助将不胜感激

4 个答案:

答案 0 :(得分:1)

当您将serverSide设置为true时,您告诉DataTables服务器将处理所有排序和分页而不是DataTables。 DataTables只会从服务器上按原样显示数据。

因此,如果您的服务器忽略了从DataTables发送的所有排序和分页参数,那么数据看起来很有趣。 (在您的情况下,无论请求的页面大小如何,服务器似乎都列出了所有记录。)

您有两种选择:

  1. 保持serverSide为false。让服务器向DataTables发送所有数据,让它处理排序,分页和排序。通常这对于中等数量的记录(50,000记录或更少)
  2. 就足够了
  3. 修改服务器以正确处理DataTables请求的排序,分页和排序。您需要提供更多信息(例如用于分页目的的记录总数),因为DataTables无法从1页数据中推断出该信息。请参阅https://datatables.net/manual/server-side#Sent-parameters以了解DataTables向服务器发送的参数以及https://datatables.net/manual/server-side#Returned-data有关服务器应返回的详细信息。

答案 1 :(得分:1)

在你的json表单的返回中必须有这些:

iTotalRecords : (Total rows),
iTotalDisplayRecords : (Total rows to display in your grud),
aaData : {(Your data)}.

适合我。

答案 2 :(得分:0)

Ther是您必须设置的一些选项

e.g

MainWindow

答案 3 :(得分:0)

这可能会迟到但您可以使用fnInfoCallback,例如:

"fnInfoCallback": function( oSettings, iStart, iEnd, iMax, iTotal, sPre ) {
                           if (isNaN(iTotal)) { 
                           return '';
                           }

                    return "Showing " + iStart +" to "+ iEnd + " of " + iTotal + " entries";
                      },