0

我有一些在事件发生后重新加载的 vaadin 表单。该事件导致某些字段变为空。这意味着表单显示字段的标签和“null”。我希望在加载事件后标签和“null”值都消失。我也想这样做而不加载不同的表单来用空值替换表单。

我有以下表单构造函数:

   public IInfoForm(Info info) {
    List<Object> orderedProperties =Arrays.asList(InfoContainer.DISPLAYED_FIELDS);
    setItemDataSource(new BeanItem(idInfo), orderedProperties);

info 容器从 web 服务中检索数据,并且 DISPLAYED_FIELDS 列出要显示的字段。
我曾尝试寻找要在表单字段上设置的属性,但无济于事。

4

2 回答 2

1

您可以为任何字段设置一个代表空值的特殊值。例子:

TextField textfield = new TextField();
textfield.setNullRepresentation("abc");

因此,在文本字段中表示“abc”而不是 null。

自己创建字段并添加它们或将 FieldFactory 添加到表单。

Form form = new Form();
form.setFormFieldFactory(new FormFieldFactory() {
    public Field createField(Item item, Object propertyId,
            Component uiContext) {
        Field field = DefaultFieldFactory.get().createField(item,
                propertyId, uiContext);
        if (field instanceof TextField) {
            ((TextField) field).setNullRepresentation("abc");
        }
        return field;
    }
});
于 2012-04-25T18:06:46.053 回答
0

我会尝试这样做,以便从 orderedProperties 列表中删除具有空值的字段并调用

setItemDataSource(new BeanItem(idInfo), orderedProperties);

与该列表。

于 2012-04-25T19:52:48.813 回答