Wicket:将列表添加到数据表

Wicket : Add a list to a datatable

我有一个要在 table 窗口中显示的对象列表。 这些对象由一个字符串和一个字符串数组组成。

我的问题是我不知道如何将这个数组添加到我的 table 中。其次,我有一些 css 需要应用于数组的每个字符串,因此它们中的每一个都必须位于不同的 div/span/li.

连接所有这些元素并手动添加“div”是个好主意吗?

感谢您的帮助:)

我一直太沉迷于使用数据表。通过在列表中使用列表,它工作得很好!

JAVA :

ListView<Profil> listProfil = new ListView<Profil>("listProfils", profils) {
    protected void populateItem(ListItem<Profil> item) {
        Profil tmpProfil = item.getModelObject();
        item.add(new Label("libelle", tmpProfil.getLibelle()));
        item.add( new ListView("listChamps", tmpProfil.getChamps()) {
            protected void populateItem(ListItem item) {
                item.add(new Label("libelleChamps", item.getModel()));
            }
        });
    }
});

以及关联 HTML 模板:

<tr wicket:id="listProfils">
    <div class="row">
        <td class="col-xs-4 col-md-3 col-lg-3 text">
            <span wicket:id="libelle"></span>
        </td>
        <td class="col-xs-7 col-md-8 col-lg-8 text" colspan="3">
            <span wicket:id="listChamps">
                <span wicket:id="libelleChamps" 
                class="label label-default badge badge-tag" >Champs</span>
            </span>
        </td>
    </div>
</tr >

作为 Wicket 中的一个好习惯,要在 HTML 中构建一个从列表中获取的 Table,您需要以下元素:

HTML

<table wicket:id="yourWicketIdOfDataTableObject">[table]
</table>

JAVA

代表您的 table

的每个元素 (o regiser) 的 POJO (pojoObject)

SortableDataProvider<pojoObject, String>

扩展的数据提供者 (dataProviderObject) class

您需要根据需要覆盖 iterator()size()model() 方法。

一个List<IColumn<pojoObject,String>> columnsObject

以上对象将代表您的 table.

的列

您可以按如下方式添加列:

columnsObject.add(new PropertyColumn<pojoObject,String>(new Model<String>("nameOfTheColum"),pojoObjectPropertyName))

一个默认数据Table tableObject:

DataTable<pojoObject, String> = new DefaultDataTable("yourWicketIdOfDataTableObject", columnsObject, dataProviderObject, NumOfColumns)

以上对象将代表 table.

如你所见,pojoObjectcolumnsObjectdataProviderObject 包裹,而这两个在最后会被 tableObject 包裹。您的数组将在 dataProviderObjectiterator() 方法中访问,因为它需要检索列表的迭代器; pojoObject 表示实际列表中的每个元素都是必需的(如果您还没有的话)

最后,您只需在其 Wicket Parent 中添加 tableObject,就像任何其他 Wicket 组件一样。