按钮上的JSF删除行单击

时间:2012-09-03 10:16:44

标签: jsf jsf-2 primefaces

我在点击按钮时删除一行时遇到一些问题。我有一个数据表,其中包含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填充数据表。我试图使用上面的代码删除相应的行。但该行未被删除。

请协助。在此先感谢

1 个答案:

答案 0 :(得分:1)

您应该在删除后更新表格

只需将update="@form"添加到<p:ajax即可。如果您有一些h:panelGroup包装器,则可以在更新中放置其ID而不是@form

b.t.w我认为在3.4中你也可以将表id放在update属性的目标中(不确定在3.4之前是否可以)

自从您转到h:commandButton后,请尝试

render="@form"render="somePanelGroudIDThatWrapsTheTable"

不要同时执行adminVOList.remove(rowIndex);adminVOList.remove(adminData) ; 如果你有正确的索引使用它删除条目