【发布时间】:2022-09-27 18:54:30
【问题描述】:
我有一个简单的 CustomComponent,其中 Person 是一个简单的数据类,带有两个字符串 TextField:name 和 sname。
这是课程:
data class Person(var name:String, var birth:LocalDate)
class PersonField : CustomField<Person>(){
private val nameField:TextField
private val birthField:DatePicker
init {
nameField = TextField().apply {
placeholder = \"Name\"
addValueChangeListener{updateValue()}
}
birthField = DatePicker().apply {
placeholder = \"Birth\"
addValueChangeListener{updateValue()}
}
add(nameField, birthField)
setWidthFull()
}
override fun setPresentationValue(person: Person?) {
if (person != null) {
nameField?.value = person.name
birthField?.value = person.birth
}
}
override fun generateModelValue(): Person {
return Person(nameField.value, birthField.value)
}
}
这是我使用两个验证器的活页夹:
binder.forField(personField)
.withValidator({ value ->
value?.name?.isNotEmpty() ?: false || value?.name?.isNotEmpty() ?: false
}, \"Name is Required\")
.withValidator({ value ->
value.birth.isBefore(LocalDate.now())
}, \"Birth must be before today\")
.bind({person->person}, {person,field-> person.name=field.name;person.birth=field.birth})
验证工作正常,但我想突出显示产生错误的特定字段。相反,它只给我错误消息:
当正确的验证器触发时,如何使“名称”子字段变为红色?
标签: vaadin vaadin-flow vaadin23