2016-06-13 68 views
0

我知道如何使用AngularJS的UI-GRID做客戶端分頁。但我想知道使用AngularJS的UI-GRID進行服務器端分頁。單擊下一頁上的手段,只有下一頁的結果從服務器中檢索並顯示給用戶。我搜索了很多,但無法找到任何正確的解決方案。angualrjs UI-GRID服務器端分頁

如果您可以提供Plunker作爲示例代碼,那將是非常好的。

在此先感謝。

回答

0

如果您使用的實體框架使用Take and Skip擴展方法與OrderBy幫助像

context.YourTable.OrderByDescending(sort).Skip(skipRows).Take(pageSize).ToList(); 

如果您使用的是SQL查詢,然後使用OFFSET and FETCHorder by幫助像

SELECT * FROM YourTable order by SomeRow desc 
OFFSET @skipRows -- skip 10 rows 
FETCH NEXT @pageSize ROWS ONLY; 

策略

  1. 將PageSize作爲pageSize傳遞給服務器端函數或API(例如10)
  2. 將skipRows傳遞給服務器端。因此,假設你是第3頁,然後

    skipRows =的pageSize *(頁-1)

所以,當你在第3頁上,然後skipRows值將成爲(10 * 2 = 20),因此從服務器端,您將得到在跳過20 rows後接下來10 rows

編輯1:如何設置UI電網

設置useExternalPagination真實和使用gridApi.pagination.on.paginationChanged跟蹤頁面的變化和取得的數據

你可以參考這個plnkr

+0

謝謝你的信息。我知道如何在Enitity框架中做。我的問題是如何在UI-Grid中做到這一點。如何在UI-GRID中針對頁面調用它。如果你或者任何人能夠提供Plunker,那將是非常棒的。 – user6389905

+0

@ user6389905更新了答案。 –

+0

Ashish,您提供的重載程序從服務器檢索所有數據,然後在客戶端進行切片。實際上我想要一個場景,其中只有選定的數據從服務器檢索到UI-GRID。 – user6389905