0

イベント後にリロードされる vaadin フォームがいくつかあります。このイベントにより、一部のフィールドが null になります。これは、フォームがフィールドのラベルと「null」を表示することを意味します。イベントがロードされた後、ラベルと「null」値の両方が消えるようにしたいと思います。また、フォームをnull値に置き換えるために別のフォームをロードせずにこれを行いたいと思います。

フォームには次のコンストラクターがあります。

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

情報コンテナーは Web サービスからデータを取得し、DISPLAYED_FIELDS は表示するフィールドを一覧表示します。
フォーム フィールドに設定するプロパティを探してみましたが、役に立ちませんでした。

4

2 に答える 2

1

null 値を表す特別な値を任意のフィールドに設定できます。例:

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

そのため、null の代わりに「abc」がテキスト フィールドに表示されます。

自分でフィールドを作成して追加するか、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リストからnull値を持つフィールドを削除して呼び出すようにしようとします

setItemDataSource(new BeanItem(idInfo), orderedProperties);

そのリストで。

于 2012-04-25T19:52:48.813 に答える