Как обновить vaadin Grid после того, как вы что-то изменили?

У меня есть сетка Ваадина, которую я использую. Я делаю запрос пут, чтобы обновить оценки элементов в сетке. Мне было интересно, как заставить сетку реагировать после обновления, чтобы показать новую информацию. Прямо сейчас я должен обновить всю страницу, чтобы показать новую информацию.

Я не уверен, какой код я бы опубликовал, я использую базовую сетку vaadin, если это поможет.

1 ответ

Я не совсем уверен, что вы подразумеваете под внесением изменений в сетку, но я полагаю, вы используете setItems или поставщика данных?

Для первого вы бы имели:

Grid<MyItem> grid = new Grid(MyItem.class);
grid.setItems(someItems);

Хотя для второго вы бы написали:

Grid<MyItem> grid = new Grid(MyItem.class);
grid.setDataProvider(...);

Для второго способа вы можете указать поставщика данных, используя нотацию Java 8, как в:

grid.setDataProvider(
  (sortOrders, offset, limit) -> {//e.g. call to repo }, 
  () -> { // count provider, e.g. repo.count() });

или как в:

grid.setDataProvider(new ListDataProvider<>(myDataCollection));

Чтобы прийти к вопросу, в обоих случаях вы можете позвонить следующим, чтобы получить поставщика:

DataProvider<MyItem> provider = grid.getDataProvider();

Чтобы обновить один конкретный элемент, поставщик данных предоставляет метод

provider.refreshItem(item);

Важно знать, что класс MyItem должен реализовывать getId() метод или, альтернативно, equals(), Если это не так, вы можете вызвать provider.refreshAll()

Другие вопросы по тегам