我使用<p:dataTable>来显示我的文件的值。每个文件的内部都有一个元数据列表。我想将每个元数据显示为文件的其他列旁边的一个列。(为了提高代码的可读性,我排除了其他列)。
所以,我的问题是,对于<p:dataList>,它不显示列。如果有人认为这是问题所在,那么元数据的名称在每个元数据中都是相同的。
我已经尝试使用<p:dataTable>而不是<p:dataList>,但由于我的客户最初希望将元数据显示为自己的列,这不是我喜欢的方法,但另一方面,它正在工作。
<p:dataTable id="fileList" var="f" value="#{reader.files}" rendered="#{reader.showFileTable()}">
<p:dataList value="#{f.meta}" var="meta1">
<p:column>
#{meta1.value}
</p:column>
</p:dataList>
<p:column headerText="Metadaten">
<p:dataTable value="#{f.meta}" var="meta">
<p:column headerText="#{meta.name}">
#{meta.value}
</p:column>
</p:dataTable>
</p:column>
</p:dataTable>我真的很感谢您的帮助,我如何使代码工作,使每个metadate在fileList-dataTable中都有自己的专栏。
P.S:,我已经试过c:forEach和ui:repeat了,它们也不起作用。
P.P.S:我忘记提到的,我的客户有时不想看到特定的元数据,所以如果可以用建议的解决方案来实现这一点,那就太好了。
发布于 2013-04-28 10:15:38
可以使用<p:columns>标记动态地构建素数面中的列(请参阅vdl )。
查看素颜橱窗中的一个示例
发布于 2014-06-09 10:38:24
假设您有以下代码:
<p:dataList id="fileList" var="f" value="#{reader.files}">
<p:dataTable value="#{f.listItems}" var="meta1">
<p:column>#{meta1.value}</p:column>
<p:columns value="#{meta1.listItems}">...</p:columns>
</p:dataTable>
</p:dataList>嵌套dataTable中的动态列不会生成:看起来p:columns不能像"f“和"meta1”一样引用var。我可以理解"meta1“是不可见的,因为它正在生成标头的表,但是我真的不明白为什么"f”在当时是不可见的。
有什么想法吗?谢谢。
https://stackoverflow.com/questions/16261759
复制相似问题