次のように、データテーブルがあり、各行にdelete linkコマンドがあります。
<h:dataTable value='#{glbProjectDtoList}' var='projectDto'
binding='#{projectController.projectDataTable}' styleClass='display'
id='tblProject' rowClasses='gradeA, gradeA'
columnClasses='projectTableName, projectTableProgress, projectTableAction'>
......
<h:commandLink
action="#{projectController.delete(projectDto.projectId)}">
<img class="btnDeleteProject mr5"
src="#{request.contextPath}/resources/images/icons/dark/trash.png" />
<f:ajax execute="@form"
onevent="function(data) {deleteProjectEventHandler(data);}"
render=":tblProject" />
</h:commandLink>
......
</h:dataTable>
削除機能は正常に動作しますが、データテーブル全体が再レンダリングされません。アクションがデータテーブルにネストされているためですか、それとも他の理由ですか?
アップデート :
(:) を削除した後、次の例外をスローします。
javax.faces.FacesException: <f:ajax> contains an unknown id 'tblProject' - cannot locate it in the context of the component j_idt68
(:) がないことを意味し、要素は同じ h:form タグ内にある必要があります。
前もって感謝します。
-牛