繁体   English   中英

如何使用JSF和Primefaces在数据表中一次渲染面板网格?

[英]How to render a panelgrid one single time in datatable with JSF and Primefaces?

我在该数据表的列中有一个primefaces数据表和2 panelgrid。 第二个panelgrid可以正常工作,但是我只需要渲染一次即可。 我在下面添加了我的代码。 每个var如何渲染第一个panelgrid一次?

<p:dataTable value="#{bean.list}" var="var">
    <p:column style="width: 60px;" groupRow="true">
        <!--data-->
    </p:column>                            
    <p:column>
        <p:panelGrid columns="4">   
            <!--data-->
        </p:panelGrid>
        <p:panelGrid columns="4" rendered="#{!rendered}">
            <!--data-->
        </p:panelGrid>
    </p:column>
</p:dataTable>

分解您的问题并将其概括 例如,您的标题已经在两种(或三种)方式中过于具体。

如何使用JSF和Primefaces在数据表中一次渲染面板网格?

  • 可以将“ panelgrid”更改为“组件”
  • “一次”可以更改为“有条件”

而且“单一时间”不够具体,就像我试图在评论中弄清楚的那样。 您实际上想根据行号或索引来呈现(或不呈现)它。

因此,更好的标题(和问题)应该是:

如何在ap:datatable的第一行中呈现组件

但...

为了有条件地渲染组件,您已经知道需要使用rendered属性。 有条件显示JSF组件的问题已经存在。

并且,如果您知道需要某种行号或索引(在JSF或p:datatable ),则可以在搜索引擎中创建要搜索的行号或索引,并且可以找到显示p:dataTable行号的信息rowIndexVar属性的存在。 除此之外,或者更确切地说,仅在IDE中使用代码完成功能或使用PrimeFaces文档也将指示rowIndexVar属性的存在。

将所有这些结合起来并不会太困难,并且会为您提供以下工作代码:

<p:dataTable value="#{bean.list}" var="var" rowIndexVar="index">
    <p:column style="width: 60px;" groupRow="true">
        <!--data-->
    </p:column>                            
    <p:column>
        <p:panelGrid columns="4" rendered="#{index == 0}>   
            <!--data-->
        </p:panelGrid>
        <p:panelGrid columns="4" rendered="#{!rendered}">
            <!--data-->
        </p:panelGrid>
    </p:column>
</p:dataTable>

所以概括,简化,rtfm ... 总是有帮助的...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM