버튼 클릭으로 행을 삭제할 때 몇 가지 문제가 있습니다. 5 열이 포함 된 datatable 있습니다. 다섯 번째 열은 버튼입니다. 버튼을 클릭 할 때 버튼에 해당하는 행 데이터를 삭제해야하는 요구 사항이 있습니다. 데이터 모델을 사용하여 열 값을 채우려고. 아래는 행 삭제를 위해 작성한 코드입니다. 그러나 행이 삭제되지 않습니다.JSF 버튼에서 행 삭제 클릭
<h:commandButton id="buttonID1" image="/images/drappimages/delete.png" style="width:15px ;" actionListener="#{adminBean.delete}" >
<f:ajax render="adminTableID" ></f:ajax>
</h:commandButton>
리스너 방법은 데이터 테이블을 채우는 adminVODataModel를 사용
public void delete(ActionEvent event)
{
deleteFlag = true;
int rowIndex = adminVODataModel.getRowIndex() ;
AdminVO admminData = adminVODataModel.getRowData();
System.out.println("The rowIndex that needs to be actioned is :"+ rowIndex);
System.out.println("The adminVOList is :"+ adminVOList.size());
adminVOList.remove(rowIndex) ;
adminVOList.remove(adminData) ;
System.out.println("the VOList now is "+ adminVOList.size());
adminVODataModel = new ListDataModel<AdminVO>(adminVOList) ;
setAdminScheduleVODataModel(adminVODataModel);
}
이하 임 특정된다. 위의 코드를 사용하여 해당 행을 제거하려고합니다. 그러나 행이 삭제되지 않습니다.
도와주세요. 당신은
그냥 <p:ajax
에 update="@form"
를 추가 삭제
감사합니다. Daniel에게 감사드립니다.에서 update = "@ form"을 사용할 때 작동했습니다. 그러나 문제는 삭제 버튼을 계속 클릭 할 때 이미 삭제 된 행이 다시 나타나는 것입니다. 처음에는 rowIndex 1을 클릭하면 행이 삭제됩니다. 두 번째로 다른 행을 클릭하면 rowindex 5라고 말하면서 rowindex 5에 해당하는 행이 삭제됩니다. 그러나 rowIndex1에 해당하는 행 데이터가 다시 나타납니다. –
vr3w3c9
adminVOList에서 데이터가 제거되었는지 확인 했습니까? – rags
@ vr3w3c9 올바른 색인을 지우고 있는지 확인하거나, 행 var을 전달할 수있는 색인을 삭제하는 대신 p의'listener' 대신 목록에서 삭제하십시오.'ajax'action = "# {adminBean .deleteWithArg (rowObj)} "', 목록/모델에서 제대로 제거하지 않는 것 같습니다. – Daniel