2015-09-04 4 views
1

Я использую Vaadin 7.5.5 и Viritin 1.35. Я реализовал LazyComboBox, который поддерживается сервисом вызова и репозитория Spring Data JPA.Как получить LazyComboBox для выбора элемента с другой страницы в Vaadin?

Моя основная установка для LazyComboBox является:

initList(
      Site.class, 
      new FilterablePagingProvider() { 
       @Override 
       public List findEntities(int index, String name) { 
        return sitesService.findByName(name); 
       } 
      }, 
      new FilterableCountProvider() { 
       @Override 
       public int size(String name) { 
        return sitesService.countByName(name); 
       } 
      }, 
      PAGE_SIZE 
    ); 

Это прекрасно работает, когда я печатаю в поле со списком.
Если я выберу элемент с первой страницы (страница 0), я могу покинуть поле со списком, вернуться к нему и снова щелкнуть стрелку вниз, и выбранный ранее элемент будет выбран.

Однако, если я выбираю элемент с любой страницы, кроме 0, то при нажатии на стрелку вниз выбранный элемент станет null, и пользователь должен будет снова найти исходный товар.

В случае необходимости я могу разместить информацию о сервисе и репозитории, но это не что-то более сложное, чем select * from table where name like '%' + name + '%'.

Как сохранить выбранное значение в поле со списком независимо от того, какая страница была выбрана?

спасибо.

ответ

0

Я думаю, вы должны позвонить setNullSelectionAllowed(false); в этот список.

Кроме того, решение сохранить выбранное значение после навигации может состоять в том, чтобы сохранить его в значении сеанса, тогда вы сможете его восстановить, где бы вы ни находились. See Session wiki page