2013-05-01 25 views
0

我有一個包含2個ui:repeat的頁面來迭代複雜的集合。我需要添加commandlinks,它將更新頁面上的一些數據而不刷新整個頁面。該代碼是這樣的:當頁面嵌套ui時,ajax調用不會reRender:repeat [JSF1.2]

<h:panelGroup id="panel1"> 
#{backBean.getNumber()} 
</h:panelGroup> 
<h:form> 
    <a4j:commandlink action="#{backBean.increaseNumber()}" reRender="panel1" /> 
</h:form> 
<ui:repeat value="#{masterlist}" var="list"> 
    <ui:repeat value="#{list}" var="element"> 
     #{element.description} 
    </ui:repeat> 
</ui:repeat> 

我可以看到increaseNumber()方法被調用而且這個數字還在更新,但PANEL1不是重新呈現。如果我刪除一個ui:repeat標籤,然後它將工作。我在網上做了研究,似乎嵌套ui:repeat有問題,但我找不到任何解決方案。

+0

一個簡單的替代方法是改變你的{masterlist}並讓它成爲列表列表的順序(如果你需要的話,使用輔助列表)。另一個機會是使用'c:foreach'來嘗試它。 – 2013-05-01 16:06:08

+0

我嘗試更換一個或兩個用戶界面:用c:foreach重複,它沒有工作。如果可能的話,我想避免將masterlist更改爲一個分層列表,因爲實際的數據顯示比我在這裏顯示的要複雜得多。 – 2013-05-01 19:34:54

回答

0

我想通了。替換ui:重複使用a4j:重複工作。

相關問題