如何使用rich:dataTable生成包含动态列的表?

时间:2011-12-05 19:46:55

标签: jsf richfaces dynamic-forms

我必须使用JSF生成动态表。我有一个包含标题的arraylist和另一个包含用于保存实际数据的字符串列表的列表 - 主列表中的每个条目代表一行。是否可以使用rich:datatable生成动态表?富有:列是一个可以考虑的选项吗?

2 个答案:

答案 0 :(得分:6)

此代码有效 -

<rich:dataTable 
        value="#{dataBean.getAttributeDetail().getAttributeRows()}" 
        var="dataValues" width="100%" border="1">
   <rich:columns 
            value="#{dataBean.getAttributeDetail().getAttributeHeaders()}" 
            var="columns" index="ind" id="column#{ind}">
       <f:facet name="header">
           <h:outputText value="#{columns}" />
       </f:facet>
       <h:outputText value="#{warningValues[ind]} " />
    </rich:columns>
</rich:dataTable>

答案 1 :(得分:3)

如果您使用的是RichFaces 4,它仍然不支持“rich:columns”,所以改为使用“c:forEach”,如下所示:

<rich:dataTable value="#{teamHandler.mitarbeiter}" var="m">
   <rich:column>
      <f:facet name="header">Mitarbeiter</f:facet>
      <h:outputText value="#{m.name}" />
   </rich:column>
   <c:forEach items="#{datumsHandler.span}" var="d">
      <rich:column>
         <f:facet name="header">
            <h:outputText value="d" />
         </f:facet>
         <h:outputText value="-" />
      </rich:column>
   </c:forEach>
</rich:dataTable>

更多信息here