3

テーブルであるvaadinのUIについてお聞きしたいです。このコンポーネントを使用した場合、次のコマンドを使用してフィールドを作成する必要があります。

userTable.addContainerProperty("Status", String.class, "Active");

このフィールドへのリンクを作成したい場合は、次のようにする必要があります。

userTable.addContainerProperty("Action", Link.class, new Link("Remove", new ExternalResource("#")));

私の質問は、上記の例では、リンクを削除する 1 つのフィールドに単一のリンクのみを表示することです。そのテーブルの 1 つのフィールドに 2 つのリンクを作成したいと考えています。たとえば、「Action」フィールドの下にある EDIT と DELETE のリンクはどうすればよいですか?

4

2 に答える 2

7

生成された列を使用して、コンポーネントを各行に追加します。Horizo​​ntal Layout と 2 つの Button をコンテンツとして作成します。

class ValueColumnGenerator implements Table.ColumnGenerator {
String format; /* Format string for the Double values. */

/**
 * Creates double value column formatter with the given
 * format string.
 */
public ValueColumnGenerator(String format) {
    this.format = format;
}

/**
 * Generates the cell containing the Double value.
 * The column is irrelevant in this use case.
 */
public Component generateCell(Table source, Object itemId,
                              Object columnId) {
    // Get the object stored in the cell as a property
    Property prop =
        source.getItem(itemId).getItemProperty(columnId);
    if (prop.getType().equals(Double.class)) {
        HorizontalLayout hbox = new HorizontalLayout()
        hbox.addComponent(new Button("Status"))
        hbox.addComponent(new Button("Remove"))
        return hbox;
    }
    return null;
}
}

詳細については、ブック オブ ヴァーディンのセクション 5.14.5 を参照してください。

https://vaadin.com/book/-/page/components.table.html

于 2012-11-12T05:50:50.950 に答える
0

このボタンは、Horizo​​ntalLayout またはその他のコンテナー コンポーネントに追加できます。次に、このレイアウトをテーブルのコンテナー プロパティに追加します。

于 2012-11-22T08:32:45.907 に答える