[英]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在數據表中一次渲染面板網格?
而且“單一時間”不夠具體,就像我試圖在評論中弄清楚的那樣。 您實際上想根據行號或索引來呈現(或不呈現)它。
因此,更好的標題(和問題)應該是:
如何在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.