dojox.grid.DataGrid - Aufrechterhaltung ausgewählte Zeilen beim Sortieren und Paging

StackOverflow https://stackoverflow.com/questions/4034824

  •  26-09-2019
  •  | 
  •  

Frage

Ich bin ein dojox.grid.DataGrid auf Anzeigedaten und dem Benutzer ermöglichen, eine oder mehr Zeilen zu markieren Elemente auszuwählen, zu tun, um andere Aktionen.

Mein Problem ist, dass der Rasterindizes verwendet die ausgewählten Zeilen zu erinnern. Wenn ich gedreht habe clientSort auf, die Zeilen Sortierung macht den Änderungsauftrag Reihen aber die Auswahl Änderungen an den Zeilen, die nun die Auswahlindizes belegen vor dem Sortieren.

Um dies zu bekämpfen ich die Einzelteile für den ausgewählten Zeilen auf jeder Auswahländerung erhalten und dann, wenn onSort Ereignis passiert, ich getItemIndex (Punkt) auf jedes der Elemente in meiner ausgewählten Elemente Sammlung die neuen Zeilenindizes zu bekommen, und ich re- wählen Sie diesen Indizes verwenden.

Nun, mein Problem ist, dass die Datagrid lädt Daten eine bestimmte Anzahl von Zeilen zu einer Zeit (es den Begriff Seite verwendet eine festgelegte Anzahl von Zeilen zu definieren) Leistung zu verbessern. Wenn eine Art tritt er die Daten in der neuen Sortierreihenfolge neu geladen, sondern nur bis zum rowsPerPage Wert (Standardwert bei 40). Wenn ich versuche, und getItemIndex deren für ein Element verwenden, um neue Zeile wurde in das Netz nicht geladen kehrt und Index von -1. Die getItemIndex () Funktion gibt den Index nur einmal den Benutzer einen Bildlauf nach unten und die Zeile geladen wird.

Ich kann nicht ein Ereignis, das Feuer finden, wenn die Seite geladen, um zu versuchen auftritt und die Auswahl wieder herstellen. Ich habe durch den 1.3.2-Quellcode geschaut und nichts finden können. Ich habe eine Reihe von privaten Funktionen versucht verbinden, aber keine Arbeit.

Hat jemand über diese kommen und fand eine Lösung?

Vielen Dank im Voraus.

War es hilfreich?

Lösung

fand ich die Antwort. Die dojox.grid.DataGrid verfügt über eine private Veranstaltung (_onFetchComplete), die jedes Mal feuert die nächste Seite anfordert. Ich benutze SetTimeout laufen meine Wiederherstellungsfunktion nach einer Dauer von 300.

Job gemacht!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top