如何在Wicket中使用repeater以表格格式添加动态内容

如何在Wicket中使用repeater以表格格式添加动态内容,wicket,repeater,dynamic-data,Wicket,Repeater,Dynamic Data,我是Wicket的新手,正在尝试在Wicket中添加纯粹的动态内容。 我有一个对象TableDataValuesVO的列表,它有一个字符串tableName和一个映射columnNamesAndValues(包含columnName及其值)。列表中的每个对象表示不同表的不同数据记录(每个对象的列名称和值的大小不同)。到目前为止,我对columnName和Value使用repeatingview。但它每行显示一个columnName,并且每行显示一个columnValue 类生成此组件: Html

我是Wicket的新手,正在尝试在Wicket中添加纯粹的动态内容。 我有一个对象TableDataValuesVO的列表,它有一个字符串tableName和一个映射columnNamesAndValues(包含columnName及其值)。列表中的每个对象表示不同表的不同数据记录(每个对象的列名称和值的大小不同)。到目前为止,我对columnName和Value使用repeatingview。但它每行显示一个columnName,并且每行显示一个columnValue

类生成此组件:
Html:

<table wicket:id="applicationDataView">
预期结果:

Table Name1:

    Col1  col2  Col3
    val11 val12 val13
    val21 val22 val23


Table Name2:

        Co131  col32  Col33 col34
        val11 val12 val13  val14
        val21 val22 val23  val24

请帮助提供显示动态数据的解决方案?

例如,您可以使用绘制大量数据表的
列表视图。(旁注:我认为这不会很快,因为您将生成大量HTML。)

爪哇:

List dataVoList=//创建数据VO的列表
添加(新ListView(“ListView”,dataVoList){
受保护的void populateItem(列表项){
DataVo DataVo=(DataVo)item.getModelObject();
最终数据提供程序dataProviderBasedOnVo=…//在此处创建数据提供程序。
IColumn[]columns=…//根据dataVo在此处创建列
添加(新数据表(“表”,列,dataProviderBasedOnVo,10));
}
});
HTML:

。。。
...

请发布您的java+html代码。我想你可以用etc@RobAu添加代码后,Kinldy将提供您的建议检查生成的HTML。你会看到很多表格,没有TR或TD。我认为您可以更好地切换到使用
DataTable
,因为它更容易实现,并且会满足您的需要。因此,我必须使用DataTable,而不是重复查看try@RobAu当我们动态填充多个表时,我想我们不能使用DataTable填充。原因是我们必须定义propertyColumn,它对于列表中的每个对象都是不同的。
Table name1:
Column 1
Column 2
Column 3
Val11
Val12
....


Table name2:
    Column 1
    Column 2
    Column 3
    Column 4
    Val11
    Val12....
Table Name1:

    Col1  col2  Col3
    val11 val12 val13
    val21 val22 val23


Table Name2:

        Co131  col32  Col33 col34
        val11 val12 val13  val14
        val21 val22 val23  val24
List<DataVo> dataVoList = ... //create your list of datavo's

add(new ListView<DataVo>("listview", dataVoList) {
    protected void populateItem(ListItem<DataVo> item) {
        DataVo dataVo = (DataVo) item.getModelObject();
        final DataProvider dataProviderBasedOnVo = ... //create dataprovider here.         
        IColumn[] columns = ... //create columns here, based on the dataVo
        item.add(new DataTable("table", columns, dataProviderBasedOnVo, 10));
    }
});
...
<div wicket:id="listview">
   <table wicket:id="table"></table>
</div>
...