首页 文章

使用数据表的服务器端分页

提问于
浏览
8

服务器每页返回15条记录,总记录超过2000条 . 我想显示前15条记录,然后每次单击“下一步”按钮,显示剩余的所有记录(每页15条记录) . 为此,我们做服务器端分页或客户端???

这是我的表和我在数据表中使用分页的属性:

var tableData = self.accountCollection.getData();

        var tableColumns = this.accountCollection.getColumns();
        var totalRecs = this.accountCollection.length;

        //create the UI grid containing the list of items

        this.resultsTable = tableEl.dataTable( {
            "bServerSide": true,
            "sEcho": 3,
            "iTotalRecords": totalRecs,
            "iTotalDisplayRecords": 15,
            "aaData": tableData,
            "aoColumns": tableColumns,
            "aaSorting": [[1,'asc']],
           });



getData: function () {

        var returnData = [];
        $.each(this.models, function (idx, accountModel) {
            returnData.push(accountModel.attributes);
        });
        return returnData;
    },

returnData 将返回一个对象,其中包含我将填充表格的字段:对象重新调整:(大致)

Object
 accountName: "No Company"
 address1: "1234 asdf"
  address2: ""
  billingAcctId: null
  billingSystem: null
  city: "mountain view"
  comments: null
   country: "USA"

然后将调用getData()函数以使用以下方法从datatbase重新调整数据:

var tableData = this.accountCollection.getData()

所以基本上tableData将具有在表中显示的必要字段和值 . 现在我可能有超过1000条从服务器返回的记录 . 因此我需要分页 . 小提琴中的那个是我尝试过并且对paginatin没有任何影响.. :(

我认为我有数据表附带的基本分页,但现在我需要有一个服务器端,一次只能显示15条记录,点击'next'和'prev'按钮我应该能够进行ajax调用以获取每页15个剩余记录...

我希望这有助于你更好地理解 . 如果您需要更多详细信息,请与我们联系 .

如何使用数据表实现分页?如果需要更多详情,请告诉我 .

谢谢

2 回答

  • 3

    enter image description here

    分页工作总计显示您需要在最小更改后执行的记录 .

    “iTotalDisplayRecord”将是总过滤记录

  • 0

    这会查找你的小巷 - > http://datatables.net/examples/data_sources/js_array.html这纯粹是客户端

    虽然,据我所知,实现实际分页的唯一方法(让它更快,因为你一次只从数据库中取出15条记录)是通过你的服务器端调整(即http://datatables.net/examples/data_sources/server_side.html

    它看起来并不像你那样做 . 除非... self.accountCollection.getData()是一个ajax回调,但在任何情况下,当你实例化DataTable时,你应该使用“ajax:tableData”而不是“aaData:tableData” .

    您可能会混淆数据表返回的JSON,以及用于与数据表交互/初始化的数据表API .

    对不起,这有点多大声笑,这有什么意义吗?

相关问题