![](/img/trans.png)
[英]c:forEach inside primefaces(e.g. p:panelgrid) inside ui:repeat
[英]PrimeFaces p:accordionPanel inside ui:repeat or c:forEach
我正在嘗試創建多個accordionPanel
。 我試圖將此標簽包含在重復元素內(例如c:forEach
)。 accordionPanel
的渲染效果很好,但是我無法從一個選項卡切換到另一個選項卡。
這些是我嘗試過的一些代碼:
<ui:repeat value="#{myBackingBean.myList}" var="o">
<p:accordionPanel dynamic="true" cache="true" multiple="true" widgetVar="accordion">
<p:tab title="Title 1">
#{o.data_one}
</p:tab>
<p:tab title="Title 2">
#{o.data_two}
</p:tab>
</p:accordionPanel>
</ui:repeat>
並且
<c:forEach items"${myBackingBean.myList}" var="o">
<p:accordionPanel dynamic="true" cache="true" multiple="true" widgetVar="accordion">
<p:tab title="Title 1">
#{o.data_one}
</p:tab>
<p:tab title="Title 2">
#{o.data_two}
</p:tab>
</p:accordionPanel>
</ui:repeat>
這兩個代碼都產生一個accordionPanel
列表,每個列表都有兩個選項卡。 但是我無法從一個選項卡切換到另一個選項卡:如果單擊一個選項卡,則該選項卡不會打開或關閉(最后一個accordionPanel
除外)。
值得注意的是,如果我手動放置兩個或更多的accordionPanel
(沒有JSF循環),它們將起作用。
另外,當我嘗試打開/關閉標簽頁時,我已經檢查了瀏覽器發送的請求。 我攔截的請求如下:
<?xml version="1.0" encoding="utf-8"?><partial-response><changes><update id="mainForm:tabView"><![CDATA[
// something that always use the id of the HTML tag of the _last_ accordionPanel
</update></changes></partial-response>
如何將<accordionPanel>
放在<ui:repeat>
或<c:forEach>
以便仍可以切換accordionPanel
的選項卡?
當您將p:accordion
放在ui:repeat
,這是widgetVar
的問題,當您像在代碼中那樣顯式指定widgetVar
時,它將生成具有不同/動態Id而不是具有不同/動態widgetVar
Accordion Panel組件。
基本上是Javascript Object的名稱,用於訪問p:accordion
的客戶端Api函數。
所以,如果你不使用widgetVar
的p:accordion
小號的任何地方, 刪除 widgetVar
屬性,那么widgetVar
將動態地生成。
如果仍要使用widgetVar
,請自己給動態名稱,例如:
widgetVar="accordion_#{o.data_one}"
注意:我僅在ui:repeat
上嘗試了上述策略。
使用:Primefaces 3.5和JSF 2.1.13及其對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.