You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PrimeFaces 10 dataTable过滤后编辑/取消时行数据消失不更新如何解决

PrimeFaces 10 过滤后dataTable编辑行丢失问题解决方案

该问题是PrimeFaces可编辑dataTable结合过滤功能时的典型配置错误,核心原因是编辑事件触发的Ajax请求没有同步更新dataTable视图、以及后端过滤数据集没有和原始数据保持同步,具体解决方案如下:

  • 修正Ajax更新范围:现有代码中行编辑和取消事件的Ajax仅更新了消息组件,未同步更新dataTable本身,导致修改后的数据没有同步到过滤视图中。需要将两个<p:ajax>标签的update属性修改为同时包含dataTable组件:
<p:ajax event="rowEdit" listener="#{serviceBean.onRowEdit}" update=":table:msgs :table:userRecordTable" />
<p:ajax event="rowEditCancel" listener="#{serviceBean.onRowCancel}" update=":table:msgs :table:userRecordTable" />
  • 校验后端Bean配置:确保serviceBean使用@ViewScoped作用域,避免每次Ajax请求后过滤数据集filterdDataVo被重置;同时在onRowEdit方法中修改完原始数据集dataVo的对应行数据后,同步更新filterdDataVo中的对应行,保证过滤数据集和原始数据一致。
  • 修正属性拼写问题:你代码中filteredValue绑定的属性名是filterdDataVo,少了一个字母e,如果后端Bean里的属性是正确拼写的filteredDataVo,会直接导致过滤数据集绑定失败,编辑后过滤结果丢失。
  • 保留过滤状态优化:如果需要编辑完成后仍然保留当前的过滤条件,不需要用户重新输入搜索内容,可以在上述两个<p:ajax>标签中添加resetValues="false"属性,避免过滤输入框的值被Ajax请求重置。

内容的提问来源于stack exchange,提问作者yasmin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:54:03