2015-09-04 48 views
1

我使用Vaadin 7.5.5Viritin 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

相關問題