【问题标题】:Primefaces dataGrid content doesn't update after removing an itemPrimefaces dataGrid 内容在删除项目后不会更新
【发布时间】:2012-12-04 21:31:46
【问题描述】:

我有一个数据网格组件:

<h:form id="myForm">
    <h:panelGroup id="statementDataContent" layout="block">

[... some controlls ...]

    <p:dataGrid id="dg" columns="#{statementDataRequestAction.columnCount}"  var="statement"
       value="#{statementDataRequestAction.data}"  rowIndexVar="#{statement.id}" >
          <p:column>
         <p:panelGrid columns="1" >
                 
              [... some controlls ...]
              <p:commandButton value="-" immediate="true" type="submit" actionListener="#{statementDataRequestAction.remove(statement)}"  process="@form" update="??? " />
                              
         </p:panelGrid>
          </p:column>
    </p:dataGrid>

如您所见,有一个用于删除当前项目的按钮。它正确调用 bean,并且该方法从列表中删除支持网格的项目。 数据网格甚至刷新(我可以看到显示的列数减少了 1),但不是网格元素内的值。

在代码中,我特意写了???因为我尝试了几十个选项,包括:

  • 刷新网格:dg:myForm:dg
  • 刷新整个表单:@form:myForm:myForm:statementDataContent
  • 刷新内部字段,但难以解决它们
  • 甚至是一些奇特的东西,例如使用p:remoteCommandp:collector*

我的 bean 在 SessionScope 中(无法更改)。

为了帮助理解我的问题:想象一下这个起始状态:

我在数据网格中有三个项目。现在我按下最左边(第一个)项目的删除按钮。日志告诉我们从支持集合中删除了正确的元素:

Remove statement: 4 - StatementDataWrapper [id=4, data=Entity: 16 - hu.avhga.entities.StatementData, year=1000]
===============Removed: true :
[StatementDataWrapper [id=5, data=Entity: 17 - hu.avhga.entities.StatementData, year=1010], StatementDataWrapper [id=6, data=Entity: 18 - hu.avhga.entities.StatementData, year=1020]]

另外,下面的截图显示了之后的结果:

如您所见,网格现在检测到只有两个要显示的项目,但显示的两个是前两个。

请给我一些提示,因为我用完了它们。 :-(

提前致谢!

巴拉格

【问题讨论】:

    标签: datagrid primefaces


    【解决方案1】:

    PrimeFaces 提供的p:commandButton 默认使用AJAX,所以你应该设置process="@none" 而不要设置immediate 标志 (Example in PrimeFaces showcase)。

    p:dataTable 中使用p:commandButton 也不能正常工作,但在3.4 版中已修复(如果我没记错的话)。这也适用于p:dataGrid

    【讨论】:

      猜你喜欢
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多