【发布时间】:2012-11-29 21:48:43
【问题描述】:
我需要动态列数。 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>
【问题讨论】:
-
为了让 id 工作,我使用了 c:forEach 上定义的 id="input#{theCount.index+1}" varStatus="theCount"
标签: jsf-2 richfaces servlet-3.0