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