<rich:dataTable>
안에 행 삭제를위한 <a4j:commandButton>
이 포함 된 열이 있습니다.RichFaces 데이터 테이블 행 삭제
commandButton의 action
속성을 통해 bean의 삭제 기능 (예 : #{bean.deleteCar(record.carId)}
)을 호출하면 행을 삭제해도 문제가 없습니다. 불행히도 <a4j:jsFunction>
의 action
속성을 사용하면 마지막 행의 record.carId
이 선택된 행 대신 빈에 전달됩니다.
설명을위한 몇 가지 코드입니다. 다음은 클릭 한 행의 차를 삭제 : 당신은 내가 삭제하기 전에 사용자의 선택을 확인하기 위해 노력하고있어 볼 수 있듯이
<a4j:commandButton value="Delete"
onclick="#{rich:component('confirmDeletePane')}.show()">
<a4j:jsFunction name="deleteCar"
action="#{bean.deleteCar(record.carId)}"
oncomplete="#{rich:component('confirmDeletePane')}.hide();"
render="carsTable"/>
</a4j:commandButton>
<rich:popupPanel id="confirmDeletePane" header="Delete" modal="true" autosized="true" onmaskclick="#{rich:component('confirmDeletePane')}.hide();">
<h:outputText value="Delete?"/>
<h:panelGroup>
<a4j:commandButton value="Cancel" onclick="#{rich:component('confirmDeletePane')}.hide(); return false;" />
<a4j:commandButton value="OK" onclick="deleteCar(); return false;"/>
</h:panelGroup>
</rich:popupPanel>
:
<a4j:commandButton value="Delete"
action="#{bean.deleteCar(record.carId)}"/>
다음은 마지막 행의 차를 삭제합니다. 미리 감사드립니다.
a4j : jsFunction은 commandButton 내에 중첩되어서는 안됩니다. 모달 안에 값을 전달한 다음 확인 버튼에 action 속성의 값을 차 ID 인 백킹 빈에 전달해야합니다. –
@ 엘리 코멘트에 감사드립니다. 비슷한 것을 시도했습니다 :을 사용하여 백킹 빈에 값을 직접 전달했습니다. 모달 (예 : 색인)에 값을 전달하는 샘플 코드가 있으면 언제든지 공유하십시오. –
나는 당신 자신의 샘플을 만들고 그 다음 코드를 아프게 게시하려고합니다. :) –