簡體   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