2014-09-19 50 views
7

服務器每頁返回15條記錄,總記錄超過2000條。我希望顯示前15條記錄,然後在每次點擊「下一步」按鈕時顯示剩餘的所有記錄,(每頁15個)。 對於這個我們做一個服務器端分頁或客戶端?使用數據表的服務器端分頁

這裏是我的表和屬性的即時通訊中的DataTable使用分頁:

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將返回我,有場我將填充IA表的對象: 對象重新調整:(大致)

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

的的getData()函數將被稱爲然後使用到retuen從datatbase數據:

var tableData = this.accountCollection.getData() 

所以基本上tableData將有必要的字段和值顯示在表中。現在我可能有超過1000個記錄從服務器返回。因此我需要分頁。 小提琴中的一個是我試過的,對paginatin沒有任何影響.. :(

我想我有基本的數據表分頁,但現在我需要有一個服務器端,以一次只能顯示15條記錄,點擊'next'和'prev'按鈕,我應該可以打ajax來獲取剩餘記錄15頁/頁...

我希望這可以幫助你如果您需要更多詳細信息請告訴我,

我怎樣才能實現使用數據表的分頁 請讓我知道,如果需要更多的細節..

感謝

回答

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混淆。

對不起,這是有點大聲笑沒有任何意義?

+0

很好,「self.accountCollection」是從服務器獲取一個用戶列表:類似下面.. this.accountCollection =新ipiadmin.collections。AccountCollection();是否有意義的做客戶端電話..? – user1234 2014-09-19 01:19:05

+0

您可以重寫self.accountCollection以在其提取的JSON中包含分頁詳細信息。基本上,你希望你的JSON看起來像{「sEcho」:15,「iTotalRecords」:2000,「iTotalDisplayRecords」:2000,「aaData」:[你的前15行數據]}然後使用self.accountCollection作爲數據表init中的ajax源代碼。 另外,只是好奇,你的堆棧(客戶端和服務器)是什麼? – 2014-09-19 16:29:59

+0

有什麼方法可以提供一個例子...感謝您的幫助! – user1234 2014-09-19 17:07:04

3

enter image description here

分頁工程總記錄顯示,您需要執行以下最低的變化。

「iTotalDisplayRecord」將是總過濾記錄