2010-05-21 49 views
0

我正在使用seam來開發一個簡單的web應用程序。 在很多地方使用A4J的commandButton,與物業重新呈現=「單元名」Seam reRender組件部分;命名容器中的reRender

組件名是在大多數地方A4J outputPanel

總是工作,直到我用的模板。包括兩種不同的觀點。 應用於整個視圖的reRender確實有效,但應用於內部組件的reRender不會。

與頁面規則相同的問題,我定義的所有操作都不再起作用。

這是Seam的問題,有人遇到過嗎?

<a4j:outputPanel id="panel1"> 
      <h:form> 
        <div class="section"> 
             // whatever code 
           </div> 

<a4j:commandButton id="button1" value="Add" action="#{bean1.action()}" reRender="panel1"/> 
<h:commandButton id="reset" value="Reset" action="#{bean1.reset}"/> 
</h:form> 

</a4j:outputPanel> 

回答

1

爲了跨越命名容器,你需要像reRender=":myComponent"reRender - 在開始結腸表示在組件樹組件的絕對位置。否則,所有的ID都是相對於當前命名容器實現的,在這種情況下這將是一種形式。

請參閱UIComponent.findComponent(..)

+0

該代碼僅爲示例。在其他情況下,我不希望小組進入形式。我有多種形式的頁面。和一些按鈕應刷新一些其他面板。不是你推薦的應該在這個表格內。 – Marc 2010-05-21 16:59:13

+0

謝謝。它確實有效 – Marc 2010-05-24 11:50:02