jqGrid paging-Frage
Wenn Sie 17 Einträge und anzeigen 15 zu einem Zeitpunkt dann, wenn man auf Seite 2 sehen Sie die Datensätze 16-17 von 17 - macht Sinn.
Nun, wenn Sie auf dieser zweiten Seite und drücken Sie die reload-Taste auf der nav (set datatype='json'), wenn das Gitter lädt sich der nav zeigt, dass das raster anzeigen 16-30 17. Dies scheint ein Fehler zu sein - gibt es eine Abhilfe?
Raster hat immer noch 17 Zeilen, aber es ' s versuchen zu zeigen, eine vollständige 15 Zeilen (die rowNum) - Einstellung auf der zweiten Seite, wenn es sollte nur mit zwei Zeilen (16-17). Und die nav Paginierung text ist falsch (bezogen auf 30 Zeilen, wenn es nur 17).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie richtig. Es ist ein altes problem. Ich benutzte immer bevor
aber es gibt einen anderen Weg. Der "trigger " reloadGrid' unterstützen weitere Optionen zur Verfügung: 'current' und 'Seite'.
zurückgesetzt wird
page
1 in einem Schritt. Die Nutzung in formermöglicht Bewahrer aktuellen Auswahl. Sie können der Ursache beide Möglichkeiten kombinieren.
page
undcurrent
.page
immer zu 1 kann nicht umgesetzt werden. Manchmal müssen Sie die aktuelle Seite aktualisieren (klicken Sie auf 'aktualisieren' - button auf der navigator). Im Fall der pager sollte unverändert bleiben. Wenn Sie auf die nächste Seite gehen, die reload wird auch gestartet. So es ist ein Fehler. Sie sollte nur in Betracht zurücksetzenpage
1, wenn es benötigt wird. Zum Beispiel, wenn Sie ändernurl
oder diepostData
Parameter ein, bevor Sie sollten 'reloadGrid' Sie sollte auch denpage
parameter. Eine kurze information für Sie: ich angehängt deinen bug report überonPager
.page=2
aus und erhalten die gleichen zwei Zeilen. Welchen Wert derpage
Sie sehen, senden Sie über den Draht?page=2
. Grid ist mitloadOnce=true
so server wieder alle Zeilen. In der server-Antwort, die Sie erhalten Datensätze=17, page=2, Gesamt=2 und Zeile 17 Elemente. jqGrid richtig sagt, wir sind auf Seite 2, aber es ist a) zeigen 15 Elemente statt der 2 und b) die paging-Beschreibung ist falsch - "displaying 16-30 von 17" - dies ist offensichtlich falsch, da wir nur 17 Zeilen, nicht 30. Also zum zusammenfassen der Daten in der Tabelle korrekt ist, aber jqGrid zeigt die falsche Scheibe Daten auf Seite 2 und die paging-Beschreibung ist falsch.loadonce:true
? Sie schrieb nur überdatatype:'json'
. Wenn Sieloadonce:true
Sie ist nur kurze Zeitdatatype:'json'
und den rest der Zeit, die Sie arbeiten mitdatatype:'local'
! Wir haben gerade unsere Zeit verbringen. Dieloadonce:true
ist design zu halten alle Daten lokal. Also in Ihrem Fall, wenn Sie änderndatatype:'json'
zurück vor neu laden und wollen sehen derselben Seite, war vor dem laden fing Sie zu ändernpage
innerhalb vonsetTimeout
genannt inloadComplete
.userData
, aber die Idee ist die gleiche. Sie können halten Sie die Informationen, die Sie brauchen, in einem locan Variablen.getGridParam('page')
immer gleich 1? Wenn Sie auf Seite 2 und Sie hit reload in den nav, danngetGridParam('page')
gleich 2. Also nicht sicher, warum haben Sie die Mühe mit der Aufzeichnung der Seitenzahl und setzen Sie die Seitenzahl inloadComplete
.loadComplete
weil ich kann das nachdem die Daten vom server geladen als JSON per ajax.getGridParam('page')
wird schon werden, 2 wenn Sie nicht explizit zurücksetzen auf die 1 vor zu laden.setTimeout()
zu laufen der laden inloadComplete
. Also das Gitter lädt sich auf Seite 1, dann lädt in 100 ms auf Seite N. Es funktioniert, aber Sie können die grid-flickr. Ich versuchte, nicht mitsetTimeout()
aber das Netz scheint sich nicht zu bewegen, um die neue Seite richtig.curPage
werden immer 1, weil es in derif (jQuery("#list").getGridParam('datatype') === "json")
. So wird es exacuted nur beim laden der Daten vom server und nicht bei der nächsten lokalen lädt. So nach dem Netz geladen werden lokal nachtrigger("reloadGrid")
. An alle nächsten paging-oder klicken Sie auf "neu Laden" - buton von Navigar wird der code nicht ausgeführt. Das Beispiel ist eine Antwort auf die Frage, wie die erste Auswahl der Daten der geladenen Daten vom server per ajax anadloadonce:true
.fromServer
option, die hilfreich ist, um neu zu laden die Daten vom server in Fall, wenn Sieloadonce: true
option.