Vaadin table.select(itemId) не работает

У меня есть таблица, привязанная к SQLContainer и кнопке вставки (которая вставляет строку в таблицу)

Когда кнопка нажата, она выполняет приведенный ниже код слушателя:

Object itemId = table.addItem();
container.getContainerProperty(itemId, "cedula").setValue(cedulaS);

try {
    container.commit();
    table.select(itemId);
catch (UnsupportedOperationException e) { //bla }

Строка вставлена ​​правильно, НО я хочу, чтобы строка была выбрана автоматически, но метод выбора не работает, не представляете?

РЕДАКТИРОВАТЬ:

Выбор (ItemId) работает, и он выбирает строку, НО по какой-то причине строка фиксации делает так, что выбор (ItemId) не работает. Я думаю, это потому, что itemId является временной строкой, поэтому, когда фиксация выполняется, она исчезает или теряет свои значения.


person Diego Quirós    schedule 24.10.2013    source источник
comment
Вы реализовали методы hash()/equal()?   -  person nexus    schedule 28.10.2013
comment
Похоже, что фиксация обновляет клиентскую часть таблицы, и это обновление переопределяет метод выбора. Чтобы проверить это - добавьте отдельную кнопку в макет и после добавления/фиксации элемента onClick вызовите table.select(itemId); Если выбор будет работать, попробуйте добавить какой-нибудь ItemSetChangeListener в таблицу или контейнер и выберите элемент из метода containerItemSetChange.   -  person Paul Butenko    schedule 30.10.2013


Ответы (1)


В этой теме есть ответ, спасибо @Teppo Kurki

https://vaadin.com/forum#!/thread/4268146

Проблема в том, что itemId является временным идентификатором строки, поэтому при выполнении фиксации iy изменил идентификатор строки, поэтому он должен быть реализован следующим слушателем:

container.addRowIdChangeListener(new QueryDelegate.RowIdChangeListener() {
  void rowIdChange(QueryDelegate.RowIdChangeEvent event) {
      table.select(event.getNewRowId());
   }
});

Теперь мы можем удалить table.select(itemId); в начальном посте

person Diego Quirós    schedule 30.10.2013
comment
Хороший! Это то же самое для контейнера для фасоли? Потому что у меня такая же проблема - person natso; 26.01.2017