Java 如何使用两个属性在Vaadin ListSelect中显示?

Java 如何使用两个属性在Vaadin ListSelect中显示?,java,vaadin,Java,Vaadin,我使用Vaadin ListSelect来显示选项。我有一个模板的标题作为显示名称,但我想从templateContainer添加一个属性(id)来显示。我怎么做 ListSelect select = new ListSelect("Templates", templatesContainer); select.setItemCaptionPropertyId("title"); 例如: ListSelect select = new ListSelect("Templates", temp

我使用Vaadin ListSelect来显示选项。我有一个模板的标题作为显示名称,但我想从templateContainer添加一个属性(id)来显示。我怎么做

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

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;
    }
};
例如:

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;
    }
};
例如:

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;
    }
};
例如:

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;
    }
};