我需要动态创建一个jsf dataTable,这意味着没有列 会有所不同,将在运行时决定 任何例子都将不胜感激。
-SPD
<ice:dataTable var="item"
value="#{section.rowDataModel}">
<ice:columns value="#{section.columnDataModel}"
var="column">
<f:facet name="header">
<ice:panelGroup>
<ice:outputText value="#{column.columnName}" style="#{column.columnWidth}"/>
</ice:panelGroup>
</f:facet>
<!-- display the table cell values-->
<ice:panelGroup
style="text-align: center; white-space: nowrap;">
<ice:inputText value="#{section.columnValue}" />
</ice:panelGroup>
</ice:columns>
</ice:dataTable>
答案 0 :(得分:3)
也许你可以绑定数据表:
<h:dataTable id="myTable" bind="#{myBean.table}"... />
豆:
public class MyBean() {
private HtmlDataTable dt;
public MyBean() {
initTable();
}
private initTable () {
dt = new HtmlDataTable();
//Add here your columns using HtmlColumn
HtmlColumn hc = new HtmlColumn();
//You can set colum values using ValueExpression
//And add column to table using getChildren().add(hc);
(...)
}
//Getters and setters
}
有关ValueExpression的更多信息,请访问here。
随意使用h:dataTable或rich:dataTable。对于h:column或rich:列也是如此,只需检查组件名称here。
答案 1 :(得分:1)
尝试嵌套c:forEach或ui:repeat(如果使用facelets)并渲染tr(外部循环),td(内部循环)标记自己