2016-06-13 7 views
0

Ich weiß, wie Client Seitenumbruch mit UI-GRID von AngularJS. Aber ich möchte serverseitige Paginierung mit UI-GRID von AngularJS wissen. Beim Klicken auf die nächste Seite werden die Ergebnisse der nächsten Seite vom Server abgerufen und dem Benutzer angezeigt. Ich habe viel gesucht, konnte aber keine richtige Lösung finden.Serverseitige Paginierung in UI-GRID von angualrjs

Es wäre toll, wenn Sie Plunker als Beispielcode bereitstellen könnten.

Vielen Dank im Voraus.

Antwort

0

Wenn Sie Entity Framework verwenden verwenden Take and Skip Erweiterungsmethode mit Hilfe von OrderBy wie

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

Wenn Sie verwenden dann verwenden OFFSET and FETCH SQL-Abfragen mit Hilfe von order by wie

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

Strategie

  1. Übergeben Sie die PageSize an die serverseitige Funktion oder API als pageSize (zB 10)
  2. Übergeben Sie die skipRows an die Serverseite. So nehme an, Sie sind auf Seite 3 dann

    skipRows = pagesize * (Seite -1)

Also, wenn Sie sind auf Seite 3 dann skipRows Wert (10 * 2 = 20) werden und somit von Server-Seite werden Sie das bekommen nächste 10 rows nach dem Überspringen 20 rows.

EDIT 1: Wie der UI-Grid

useExternalPagination wahr und gridApi.pagination.on.paginationChanged Set Setup verwenden, um die Seite Änderungen zu verfolgen und bekommt die Daten

Sie diese beziehen plnkr

+0

Danke für die Information. Ich weiß, wie man im Enitity Framework vorgeht. Meine Frage ist, wie man es in UI-Grid macht. Wie man es im UI-GRID gegen die Seite aufruft Es wäre großartig, wenn Sie oder jemand Plunker zur Verfügung stellen könnten. – user6389905

+0

@ user6389905 aktualisiert die Antwort. –

+0

Ashish, der von Ihnen bereitgestellte Plünderer ruft alle Daten vom Server ab und schneidet dann auf der Client-Seite. Ich möchte eigentlich ein Szenario, in dem nur ausgewählte Daten vom Server zum UI-GRID abgerufen werden. – user6389905