我需要动态生成一个表格列表。每个表格都有可变数量的列(行数固定)。
为了实现这个目标,我首先把一个
然后,为了动态生成列,我尝试在
在这里我写了一个最小化示例。在名为
值得注意的是,标题行正确地将
此外,如果我使用
我还尝试了不同排列方式的
那么,如何使用prime-faces动态生成更多的表格并设置动态列数?
谢谢!
编辑:我想使用两个
然后我得到了一个空的结果。(我知道,这是一个不同的问题)
为了实现这个目标,我首先把一个
<p:panelGrid>
放在一个 <ui:repeat>
中:这样我正确地生成了一个表格列表。然后,为了动态生成列,我尝试在
<p:panelGrid>
中放置 <ui:repeat>
或 <c:forEach>
。结果没有显示任何行。在这里我写了一个最小化示例。在名为
testBackingBean
的 bean 中,我定义了(并初始化了)变量 ArrayList<ArrayList<String>> tables
。下面是未能产生预期结果的 xhtml 代码。<ui:repeat var="table" value="#{testBackingBean.tables}">
<p:panelGrid>
<f:facet name="header">
<p:row>
<p:column >header of #{table}</p:column>
</p:row>
</f:facet>
<p:row>
<c:forEach var="row" items="${table}">
<p:column>#{row}</p:column>
</c:forEach>
</p:row>
</p:panelGrid>
</ui:repeat>
值得注意的是,标题行正确地将
#{table}
转换为字符串。问题在于我看不到任何数据行。此外,如果我使用
<table>
而不是<p:panelGrid>
,一切正常。我还尝试了不同排列方式的
<c:forEach>
和<ui:repeat>
,但都没有成功。那么,如何使用prime-faces动态生成更多的表格并设置动态列数?
谢谢!
编辑:我想使用两个
<c:forEach>
,但即使只有一个<c:forEach>
,我也得到了一个空结果。实际上,如果我尝试以下xhtml:<c:forEach items="${testBackingBean.tables}" var="tabella">
current element: #{tabella}
</c:forEach>
然后我得到了一个空的结果。(我知道,这是一个不同的问题)
<p:dataTable>
。顺便说一下,如果我使用两个c:forEach
,那么panelGroup
将不会被生成。 - Antonio Ragagnin<p:dataTable>
需要一个具有属性数组的单个bean。不幸的是,我的数据结构是由一组具有某些属性的bean组成的数组。 - Antonio Ragagnin