【问题标题】:JSF Delete Row on Button Click按钮单击时 JSF 删除行
【发布时间】:2012-09-03 10:16:44
【问题描述】:

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

请协助。提前致谢

【问题讨论】:

    标签: jsf jsf-2 primefaces


    【解决方案1】:

    你应该在删除后更新你的表

    只需将update="@form" 添加到您的&lt;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) ; 如果你有正确的索引使用它来删除条目

    【讨论】:

    • 感谢丹尼尔的回复。当我在 中使用 update="@form" 时,它确实有效。但问题是,在连续单击删除按钮时,已经删除的行似乎又出现了。即最初当我单击 rowIndex 1 时,该行被删除。第二次,当我单击另一行时,例如 rowindex 5,对应于 rowindex 5 的行被删除。但是rowIndex1对应的行数据好像又出现了。
    • 您是否检查过数据是否已从您的 adminVOList 中删除?
    • @vr3w3c9 要么检查您是否删除了正确的索引,要么不删除索引,您可以传递行变量并将其从列表中删除,而不是 p:ajax 中的 listener 使用类似action="#{adminBean.deleteWithArg(rowObj)}" ,您似乎没有从列表/模型中正确删除
    • 感谢丹尼尔的回复。我已经更新了上面的代码,我得到了相应的行数据并从列表中删除了相同的数据。我使用 f:ajax 并尝试在执行删除按钮以显示更新的表数据后呈现数据表。但我仍然面临一些问题。动作监听器被调用,但表数据没有被刷新。
    • @vr3w3c9 试试我说的render="@form" 或render="somePanelGroudIDThatWrapsTheTable"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 2021-09-05
    • 1970-01-01
    相关资源
    最近更新 更多