在我的应用程序中,我有一个带有textField的ListView,它在用户提交按钮时进行验证。出现错误时,将显示错误消息。问题是有很多行,所以用户无法轻易识别坏行。那么有什么方法可以在提交按钮后将css类添加到这个坏行吗?
private void addListView() {
add(new PropertyListView<MyClass>("view") {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(final ListItem<MyClass> listItem) {
listItem.add(new TextField<String>("result") {
private static final long serialVersionUID = 1L;
@SuppressWarnings("unchecked")
@Override
public final <String> IConverter<MyClass> getConverter(Class<MyClass> type) {
return (IConverter<MyClass>) StringConverter.getInstance();
}
});
});
}
答案 0 :(得分:1)
我认为您可以使用FormComponent#isValid()来判断某个组件是否存在验证错误。
然后,您可以在onBeforeRender()
。
请参阅此处获取灵感:(注意它是Wicket 1.4,因此您可能需要更改小位):
https://cwiki.apache.org/confluence/display/WICKET/Automatic+styling+of+form+errors
当然,您也可以找到Component的findParent()
来查找行..
答案 1 :(得分:0)
感谢RobAu回答我只需要覆盖textField中的validate方法:
public void validate() {
super.validate();
if (!isValid()) {
add(new AttributeModifier("class", "errorField"));
}
};