当前位置: 首页 > 知识库问答 >
问题:

删除表单中重复的实体并可视化更新结果不起作用

徐文斌
2023-03-14

我有一个项目列表,我希望能够添加和删除项目。为此,我在a中添加整个列表,每次添加或删除一个项目,我都从primeface调用更新。代码看起来像这样:

<h:panelGroup id="group">
     <ui:repeat value="#{manager.values}" var="item">
      <p:inputText value="#{item.name}"/>
      <p:commandButton value="Remove" action="#{manager.remove(item)}" onsuccess="update_values();"/>
     </ui:repeat>
</h:panelGroup>
<p:remoteCommand update="group" name="update_values"/>
<p:commandButton value="Add" action="#{manager.newValue()}" update="group"/>

添加工作正常,但每次我调用删除,行为是奇怪的。最右边的项目被删除,其他项目的名称保持不变,即使我删除了最左边的项目。

经过一些调试后,我发现这是因为value="#{item.name}":该项目被正确删除,但删除后,存在的字段的值被设置为字段以前的值。所以总的来说,最右边的字段已经不存在了,因为ui:重复少了一项,但是其他的得到了他们以前的值,所以只能删除最右边的字段。

有人知道怎么解决这个问题吗?一个解决方案可能是用javascript清除每个字段,但我更希望框架能够解决这个问题,而不是自己编写代码。

共有1个答案

郁灿
2023-03-14

试着这样做:

<p:commandButton value="Remove" action="#{manager.remove(item)}" update=":directPath:group" process="@this" />

可能是因为按钮本身没有硬更新。

PS

有没有<代码>

 类似资料:
  • 问题内容: 我有两个列表需要合并,第二个列表忽略了第一个列表的重复项。..有点难以解释,所以让我展示一个代码看起来像什么,以及我想要什么的示例。 您会注意到结果具有第一个列表, 包括 其两个“ 2”值,但是second_list也具有附加的2和5值这一事实并未添加到第一个列表中。 通常,对于这样的事情,我会使用集合,但是first_list上的集合会清除它已经具有的重复值。所以我只是想知道什么是实

  • 问题内容: 我现在急切地尝试删除涉及各种关系的实体(仅)-但是,Hibernate不会删除任何内容- 在调用所有内容后保持不变。 我有5个实体(),像这样引用所涉及的实体(): 本身具有相反的关系: (不包括ID,其他列等) 每当我打电话时, 什么都不会 发生。我添加了Hibernate SQL- Output,但是看不到执行查询的单次尝试。 由于删除可能来自ajax请求和 新的 EntityMa

  • 问题内容: 我有以下通常正常工作的代码: 对于我的许多实体类来说,这都是可行的。但是对于其中的两个它什么也不做,它不会引发任何异常,也不会删除该对象。来自hibernate的日志显示,hibernate执行了许多选择查询,但它甚至没有尝试执行删除。 我已经在这里和这里尝试了在其他类似问题中发现的建议,但是没有用(嗯,后者建议我不能使用,但是我只是在和之间加上了语句)。 我似乎找不到这两个类比其他类

  • 我有以下通常运行良好的代码: 对于我的许多实体类,这很有效。但是,对于其中两个,它什么都不做,它不会引发任何异常,也不会删除对象。来自Hibernate的日志显示Hibernate执行了许多选择查询,但它甚至不会尝试执行删除。 我已经尝试了在这里和这里的其他类似问题中找到的建议,但无济于事(好吧,后者建议我不能使用,但我只是将语句括在和之间)。 我似乎找不到这两个班比其他班多(或少)什么。他们使用

  • 我有recyclerview,每行包含一个项目列表和一个按钮。单击按钮时,我希望删除整行并自动更新列表。 下面是我的适配器类代码: 此代码有效,项目将被删除。但是,列表不会更新,直到我再次访问该活动。如何立即更新视图?

  • 我有一个在MongoDB中存储数据脚本,我想用另一个脚本删除文档。我的数据库中存储的每个文档都采用以下格式: 我想做的是通过传递密钥(在本例中为k1526346000_500)来删除文档,当我尝试执行以下操作时: 编辑:当我转储该文档时,我会得到以下结果: 所以这里肯定不是用“_id”,但我不知道如何捕捉这个字段:(