2014-10-01 52 views
0

我使用Vaadin ListSelect來顯示選項。我有一個模板的標題作爲顯示名稱,但我想從templateContainer中添加一個屬性(id)來顯示。我該怎麼做?如何使用兩個屬性在Vaadin ListSelect中顯示?

ListSelect select = new ListSelect("Templates", templatesContainer); 
select.setItemCaptionPropertyId("title"); 

回答

3

例如:

ListSelect select = new ListSelect("Templates", templatesContainer) { 
    @Override 
    public String getItemCaption(Object itemId) { 
     MyTemplate t = (MyTemplate) itemId; 
     return t.getTitle() + "-" + t.getId(); 
    } 
}; 

或者,如果你使用的容器,你可以直接使用它:

ListSelect select = new ListSelect("Templates", templatesContainer) { 
    @Override 
    public String getItemCaption(Object itemId) { 
     Container c = getContainerDataSource(); 
     String title = (String) c.getContainerProperty(itemId, "title").getValue(); 
     Integer id = (Integer) c.getContainerProperty(itemId, "id").getValue(); 
     return title + "-" + id; 
    } 
};