Vaadin combobox.select() 无论我做什么都不起作用

Vaadin combobox.select() does not work no matter what I do

我正在使用 Hibernate MySQL 编写一个基本的 CRUD 应用程序。 添加新记录没问题,但在编辑现有记录时,我在默认情况下让现有记录的值显示为所选项目时遇到了一些麻烦。 这是相关代码:

Criteria criteriaz = session.createCriteria(Organisation.class);
final List<Organisation> orgList = criteriaz.list();
BeanItemContainer<Organisation> srcOrgs = new BeanItemContainer<Organisation>(Organisation.class);
srcOrgs.addAll(orgList);

organisationId.setInvalidAllowed(false);
organisationId.setNullSelectionAllowed(false);
organisationId.setContainerDataSource(srcOrgs);
organisationId.setItemCaptionMode(ItemCaptionMode.PROPERTY);
organisationId.setItemCaptionPropertyId("name");

for (Organisation mOrg : orgList) {
                    if (mOrg.getRowid().equals(activity.getOrganisationId())) 
                        mOrgID = mOrg.getName();  
                }

organisationId.select(mOrgID);

我在这里做错了什么?

仅使用:

for (Organisation mOrg : orgList) {
    if (mOrg.getRowid().equals(activity.getOrganisationId())) 
        organisationId.select(mOrg);
        break;
    }

BeanItemContainer 包含 bean 作为 ID,因此您始终只使用 bean。

虽然您将标题 属性 id 设置为名称,但它不会更改项目的标识符 ID。因此,您可以将以下内容与 BeanItemContainer 结合使用:

organisationId.select(orgList.get(mOrgID));

并改变这个

mOrgID = mOrg.getName(); 
to
mOrgID = mOrg; 

让@Morfic 开心:

organisationId.select(orgList.get(orgList.indexOf(mOrgID)));