我在点击按钮时删除一行时遇到一些问题。我有一个数据表,其中包含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填充数据表。我试图使用上面的代码删除相应的行。但该行未被删除。
请协助。在此先感谢
答案 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) ;
如果你有正确的索引使用它删除条目