0

ボタンをクリックして行を削除する際に問題があります。5列を含むデータテーブルがあります。5列目はボタンです。ボタンをクリックすると、ボタンに対応する行データを削除する必要があるという要件があります。データモデルを使用して列の値を入力しようとしています。以下は、行の削除を達成するために書いたコードです。しかし、行は削除されていません。

<h:commandButton id="buttonID1"  image="/images/drappimages/delete.png" style="width:15px ;" actionListener="#{adminBean.delete}" >  
<f:ajax  render="adminTableID" ></f:ajax>  
</h:commandButton> 

リスナーメソッドは以下に指定されています

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);  

}  

adminVODataModel を使用してデータテーブルにデータを入力しています。上記のコードを使用して、対応する行を削除しようとしています。しかし、行は削除されていません。

手伝ってください。前もって感謝します

4

1 に答える 1

1

削除後にテーブルを更新する必要があります

に追加update="@form"するだけ<p:ajaxです。ラッパーを入手した場合は、更新h:panelGroupの代わりにその ID を配置できます。@form

ところで、3.4ではテーブルIDを属性のターゲットにも配置できると思いますupdate(3.4より前に可能だったかどうかはわかりません)

に引っ越したのでh:commandButton、試してみてください

render="@form"またrender="somePanelGroudIDThatWrapsTheTable"

また

adminVOList.remove(rowIndex); 両方を実行しないでくださいadminVOList.remove(adminData) ; 。適切なインデックスを取得した場合は、それを使用してエントリを削除します

于 2012-09-03T10:41:49.093 に答える