我使用Vaadin 8 NativeSelect作为下拉菜单供用户进行选择。每个选择都指向一个保存多个数据的对象实例,我只希望下拉列表显示与该对象中单个变量有关的识别信息,但是NativeSelect似乎无法在一个对象中单独处理Model和Presentation。明显的方法。

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

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

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

有没有办法做到这一点?

最佳答案

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

Vaadin Documentation中有一整节关于处理相关内容的内容

09-26 15:00