Повторная визуализация сетки выполняется путем обновления DataProvider.Вы можете сделать это следующим образом:
grid.getDataProvider().refreshAll();
Редактировать: мое объяснение основано на неверных предположениях
ListDataProvider
не копирует предоставленную коллекциюпоэтому изменение исходного набора элементов повлияет на поставщика данных.Но он не воспроизводится автоматически, вам все равно придется вызывать refreshAll()
.
refreshAll()
, в основном повторять элементы поставщиков данных, перестраивать строки и повторно применять любые пользовательские определения столбцов (т. Е. StyleGenerators идругие государственные решения).Пока вы сохраняете оригинальную коллекцию в актуальном состоянии с тем, что вы хотите показать, вызов refreshAll()
должен работать.
Если вы хотите полностью изменить показанный список элементов, вы можете удалить все элементы изисходную коллекцию (identifiers
) и добавьте в нее новые элементы, затем обновите все, либо вы можете просто установить новый поставщик данных с новой коллекцией элементов.
(Эта строка также решит проблему OP, но должна бытьизбегать, если достаточно refreshAll.)
grid.setDataProvider(new ListDataProvider<>(otherIdentifiers));