2016-12-15 2 views
0

ich manuell die ausgewählten Zeilen im Raster löschen verwenden:Vaadin Grid SelectionModel wird nur aufgefrischt nach dem Scrollen

for(Object selectedItem: grid.getSelectedRows()) 
    grid.getContainerDataSource().removeItem(selectedItem); 

grid.getSelectionModel().reset(); 

According to the Vaadin documentation Sie anrufen müssen zurückgesetzt werden() auf der selectionModel, so dass sie synchron sind, und das ist großartig .

Das alles funktioniert super aber nur wenn ich mit der Maus im Browser das Raster runterscrolle, damit sich das ganze Raster bewegt. Wenn ich das Raster in meinem Browser nicht durchblättere, wählt die Maus die falsche Zeile mit der genauen Anzahl der Zeilen aus, die zuvor vor dieser Zeile ausgewählt wurden. Wenn ich also Zeile 2 anwähle und sie dann lösche, dann Zeile 3 auswählen, wird Zeile 4 tatsächlich ausgewählt. Wenn ich jedoch nach unten blättere, damit die Rasteransicht aktualisiert wird, dann funktioniert alles genau wie erwartet und die richtige Zeile wird ausgewählt.

Verwenden von Vaadin 7.7.5.

Antwort

0

Sieht aus wie es schwierig ist, get the grid to refresh.

grid.clearSortOrder(); 

Scheint die aktuelle Problemumgehung zu sein.

+0

Leider funktioniert es nicht wirklich. Ja, es löst das Problem, indem Sie das Grid korrekt auswählen. Das Problem ist, dass wenn Sie Filter für die Spalten einrichten, dies fehlschlägt und zum selben Fehler führt. –

Verwandte Themen