2015-05-18 37 views
0

找到純HTML元素我擁有顯示設備的表格。下面有一個按鈕可以輸入分頁的頁碼。當點擊該按鈕ajax致電更新tableId表。但我有一個錯誤<f:ajax> contains an unknown id 'tableId'無法從<f:ajax render =「...」>

我不能從ajax更新引用表ID?如果不是什麼解決方案?我無法使用datatable,因爲我需要在運行時處理列標題。

<table id="tableId"> 
    <tr> 
     <td> 
      <h:commandLink ...> 
       <f:ajax render="tableId" /> 
      </h:commandLink> 
     </td> 
    </tr> 
</table> 

回答

1

<f:ajax render>(和<f:ajax execute>)具有指代一個fullworthy JSF組件,而不是一個普通的HTML元素。 JSF將把指定的ID傳遞給UIComponent#findComponent(),以便在組件樹中找到負責生成所需片段HTML輸出的組件。純HTML元素不會被解釋爲真正的JSF組件,因此不會通過其ID在JSF組件樹中顯示。

要麼使其成爲真正JSF組件,

<h:panelGrid id="tableId" columns="1"> 
    <h:commandLink ...> 
     <f:ajax render="tableId" /> 
    </h:commandLink> 
</h:panelGrid> 

或包裝在一個真正的JSF組件和引用它來代替。

<h:panelGroup id="tableIdWrapper" layout="block"> 
    <table id="tableId"> 
     <tr> 
      <td> 
       <h:commandLink ...> 
        <f:ajax render="tableIdWrapper" /> 
       </h:commandLink> 
      </td> 
     </tr> 
    </table> 
</h:panelGroup> 
相關問題