Jsf 2 o:tree和p:panelGrid的错误表示
我想构建一个树,其中包含Jsf 2 o:tree和p:panelGrid的错误表示,jsf-2,primefaces,omnifaces,Jsf 2,Primefaces,Omnifaces,我想构建一个树,其中包含p:oanelGrid作为节点。像这样: <o:tree value="#{plannedElementsBean.tree}" var="item"> <o:treeNode level="0"> <o:treeNodeItem> <p:panelGrid columns="6"> <f:facet name="header">
p:oanelGrid
作为节点。像这样:
<o:tree value="#{plannedElementsBean.tree}" var="item">
<o:treeNode level="0">
<o:treeNodeItem>
<p:panelGrid columns="6">
<f:facet name="header">
<h:outputText value="Header" />
</f:facet>
<o:treeInsertChildren />
<p:panel><h:outputText value="Inner" /></p:panel>
<f:facet name="footer">
<h:outputText value="Footer" />
</f:facet>
</p:panelGrid>
</o:treeNodeItem>
</o:treeNode>
</o:tree>
问题是,孩子们之间的垂直线丢失了
p:panelGrid
渲染其子级之间的垂直线。我用静态标记测试了它。但是,通过o:tree
插入的所有子级都被视为第一个子级所在的位置,因此渲染为第一部分,而内部面板渲染为第二部分,由垂直线分割。我想有所有插入的儿童和内部面板被一条垂直线分开。这里出了什么问题?这确实是预期的行为。
和friends是像
这样的UI组件,而不是像
那样的标记处理程序。
呈现每个UI组件子级的
您似乎认为
(相当于
)递归地生成多个JSF组件,最终取代
。事实并非如此。实际上,组件树中只有一个JSF组件,它根据当前迭代状态重复生成HTML输出。实际上只有一个
组件,它的所有HTML输出都以一个
的
结束
您最好的选择是使用固定宽度为16%的左浮动div,这样它们就可以在每6个项目之后中断到下一行。请注意,如果需要,可以在普通HTML元素上轻松重用PrimeFaces标准CSS类
另见: