【问题标题】:Removing row not reflected in datatable after update删除更新后未反映在数据表中的行
【发布时间】:2017-05-21 18:49:51
【问题描述】:

我的删除按钮将从数据库中删除一个条目,但不会从 primefaces 中的实际数据表中删除。直到您使用过滤器更改或 F5/新会话刷新它。

我已经查看了这个问题的其他各种答案,但我还是一片空白。我试过弄乱更新并使用 oncomplete="PF('datalistWidget').filter()" 等等。

使用 primefaces 6.0 和 glassfish 4.1。任何帮助表示赞赏。 我大致遵循了http://www.oracle.com/technetwork/articles/java/java-primefaces-2191907.html 的教程,然后添加了我自己的自定义。托管 bean 和外观等...都与数据库创建类的教程相似。我在 glassfish 日志中没有看到任何错误。

数据表

<p:dataTable id="datalist" value="#{chemicalChemicalController.items}" var="item"
         selectionMode="single" selection="#{chemicalChemicalController.selected}"
         paginator="true"
         editable ="true"
         rowKey="#{item.chemKey}"
         rows="10" 
         widgetVar="datalistWidget"
         rowsPerPageTemplate="10,20,30,40,50"
         filteredValue="#{chemicalChemicalController.itemsFiltered}"
         >

删除命令按钮

<p:commandButton id="deleteButton" icon="ui-icon-trash"
value="#{bundle.Delete}" actionListener="#{chemicalChemicalController.destroy}" 
update=":growl, datalist" disabled="#{empty chemicalChemicalController.selected}"/>

控制器删除命令

   public void destroy() {
    persist(PersistAction.DELETE, ResourceBundle.getBundle("/Bundle").getString("ChemicalChemicalDeleted"));
    if (!JsfUtil.isValidationFailed()) {
        selected = null; // Remove selection
        items = null;    // Invalidate list of items to trigger re-query.

    }
}

【问题讨论】:

  • 就像答案状态一样,您似乎没有从列表中删除该项目或表明您从数据库中完全加载列表

标签: ajax primefaces jsf-2 datatable


【解决方案1】:

destroy 方法,从 items 对象中删除。

public void destroy(SelectEvent event) {
    persist(PersistAction.DELETE, ResourceBundle.getBundle("/Bundle").getString("ChemicalChemicalDeleted"));
    if (!JsfUtil.isValidationFailed()) {
        selected = null; // Remove selection
        items = null;    // Invalidate list of items to trigger re-query.

    }

    RowObj rowObj = (RowObj) event.getObject();// here Row Object is your selected row item.
   if(items != null)
   {
      //iterate items and delete matched with selected row object 
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多