我需要动态列数。Richfaces 在 Richfaces 3.3.3-final 中为其提供了它,<rich:columns>
但对于 Richfaces 4,他们似乎推荐使用<c:forEach>
.
c:forEach
我无法让它正常工作。由于我不能依赖数据表中的 var,所以我无法弄清楚如何<c:forEach>
使用正确的列列表来提供数据。(每一行都有自己的值,但标题相同)
基本上我要显示的数据是一个 x 大小的行列表,每一行都有一个 y 大小的列值列表。但是如何<c:forEach>
告诉支持 bean 它在哪一行,以便我可以提供正确的列?
ui/a4j:重复
我不想重新发明轮子,因为我需要冻结列和许多其他功能。已经考虑过以这种方式创建表格 html 并使用 jQuery 来实现其他功能。然而,这将是无望的维持和大量的工作。
我还研究了从支持 bean 动态创建子项来构建它,但我根本不喜欢那样。这必须是最后的手段。
使用:Tomcat 7、servlet 3.0、JSF 2.1x - Mojarra、Richfaces 4.x
更新
好的,所以我终于得到了一些结果。但是我的标题没有显示。这些值显示完美,但不显示标题。用迭代或其他东西做它们有什么问题吗?
<rich:dataTable value="#{controller.rows}"
var="row">
<c:forEach items="#{controller.columns}" var="column">
<rd:column id="name" width="250">
<f:facet name="header">
<h:outputText value="#{row.myArrayList[column].header}" />
</f:facet>
<h:inputText value="#{row.myArrayList[column].value}" disabled="#{row.myArrayList[column].open}"/>
</rd:column>
</c:forEach>
</rich:dataTable>