Vaadin 8 NativeSelect 更改列表的数据表示

Vaadin 8 NativeSelect change data representation of list

我正在使用 Vaadin 8 NativeSelect 作为用户进行选择的下拉菜单。每个选择都引用一个包含多条数据的对象实例,我只希望下拉列表显示与该对象中的单个变量有关的一条标识信息,但它似乎 NativeSelect 无法处理模型和以明显的方式单独呈现。

data class Consultant(
    val name: String,
    val id: Long
)

val consultantSelection = NativeSelect<Consultant>().apply { 
    setItems(consultantDao.getAll())
    caption = "Select Consultant"
}

在我的代码中,我创建了一个 NativeSelect 来处理 Consultant 类型,然后创建一个下拉菜单,该菜单简单地将各个 Consultant 对象的内容解包为每个可选对象。我只想在选择中显示 Consultantname

有办法实现吗?

您必须为此提供 setItemCaptionGenerator。否则 Vaadin 回退到 .toString() 实现。

Vaadin Documentation

中有一整节是关于处理周围事物的