首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

验证失败时,Primefaces单元格编辑保留编辑模式

Primefaces是一个开源的JavaServer Faces(JSF)组件库,提供了丰富的UI组件和功能,用于构建Web应用程序。在Primefaces中,单元格编辑是一种常见的功能,允许用户直接在表格中编辑数据。

当验证失败时,Primefaces单元格编辑会保留编辑模式,以便用户可以继续编辑并尝试修正错误。这样可以提供更好的用户体验,避免用户在每次验证失败后重新进入编辑模式。

在Primefaces中,可以通过以下步骤实现验证失败时保留编辑模式:

  1. 配置验证规则:在单元格中使用Primefaces提供的验证器或自定义验证器来定义验证规则。例如,可以使用<p:inputText>组件并指定required="true"属性来要求输入不能为空。
  2. 处理验证失败事件:使用Primefaces提供的事件处理机制,在验证失败时执行相应的操作。可以使用<p:ajax>组件监听cellEdit事件,并在验证失败时执行自定义的JavaScript函数。
  3. 保留编辑模式:在验证失败时,通过JavaScript代码将单元格设置为可编辑状态。可以使用<p:cellEditor>组件的cancelEditing()方法来取消编辑模式,并使用<p:cellEditor>组件的activate()方法重新激活编辑模式。

以下是一个示例代码片段,演示了如何在Primefaces中实现验证失败时保留编辑模式:

代码语言:txt
复制
<p:dataTable value="#{bean.dataList}" var="data">
    <p:column headerText="Name">
        <p:cellEditor>
            <f:facet name="output">
                <h:outputText value="#{data.name}" />
            </f:facet>
            <f:facet name="input">
                <p:inputText value="#{data.name}" required="true" />
            </f:facet>
        </p:cellEditor>
    </p:column>
    <p:column headerText="Save">
        <p:commandButton value="Save" action="#{bean.saveData(data)}" update="@form" />
    </p:column>
    <p:ajax event="cellEdit" listener="#{bean.handleCellEdit}" />
</p:dataTable>

<script>
    function handleCellEdit(event) {
        if (!event.validationFailed) {
            event.source.cancelEditing();
        } else {
            event.source.activate();
        }
    }
</script>

在上述示例中,<p:dataTable>组件用于显示数据表格,<p:column>组件定义了表格的列,其中包含了<p:cellEditor>组件和验证规则。<p:commandButton>组件用于保存编辑后的数据。

通过使用<p:ajax>组件监听cellEdit事件,并调用JavaScript函数handleCellEdit来处理验证失败事件。在handleCellEdit函数中,根据event.validationFailed属性判断验证是否失败,如果失败则调用event.source.activate()方法保留编辑模式,否则调用event.source.cancelEditing()方法取消编辑模式。

这样,当验证失败时,Primefaces单元格编辑会保留编辑模式,以便用户继续编辑并修正错误。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何快速实现多人协同编辑?

比如编辑一个单元格时,其他人不允许编辑此单元格,并有样式提醒; 2. A用户正在编辑时,B用户在上方插入了一行,此时A编辑的单元格也要下移,而不是保留在原位; 3....二、处理粘贴 粘贴的command同步到其他客户端时,会执行失败,仔细对比发出的command和接收的command,会发现其中两个字段发生了变化: 这两个数组内部本应该是Range对象,但是却被转换成了不同的...三、编辑状态唯一 即同一个单元格同一时间只能有一个用户编辑。这是协同编辑几乎必备的一个需求,看起来很简单,但事实上是比较复杂的。...当客户端有用户开始编辑时,向服务端发送消息, 而服务端需要维护一个数组,记录所有当前正在被编辑的单元格信息,并向所有客户端同步 其他客户端收到消息后,用户如果要编辑此单元格,则禁止用户进入编辑状态...当然,用户可能希望看到有哪些人正在编辑哪些单元格,类似于这种效果: 这里是用自定义单元格的方案实现的: 这个功能算是初步实现了,但是考虑一下这种情况:如果你正在编辑时,其他用户在上方插入了一行呢?

38120

CSV文件编辑器——Modern CSV for mac

在编辑 CSV 文档时,大多数人都在寻找一种高度专业的工具来帮助他们做他们想做或实际需要做的任何事情。现代 CSV 正是这种类型的工具。它提供了大量的选项和功能,同时快速且易于使用。...考虑到这一点,当涉及到 CSV 文档时,这个小程序可以做正确的事情。 点击安装》Modern CSV for mac 快速编辑 多单元格编辑 复制行、列和单元格。 移动行、列和单元格。...只读模式,可实现更高效的文件处理。 加载文件的速度比 Excel 快 11 倍。 查找和排列您的数据使用正则表达式查找/替换、突出显示匹配、整个单元格匹配等。按升序或降序对行或列进行排序。...Modern CSV Mac功能特点 轻松编辑CSV文件 为什么移动列、复制行或拆分单元格会很困难?使用现代 CSV,这很容易。 使用大多数命令,您可以一次对多个行、列或单元格进行操作。...快速查看大型 CSV 文件 Modern CSV 不仅是一个强大的 CSV 编辑器,还是一个强大的 CSV 查看器。它带有只读模式,可以快速加载大文件,并且占用的内存很小,只是文件大小的一小部分。

4.9K30
  • VSCode1.59版本发布

    这个是一个新的设置功能 ---- 阵列设置现在在非编辑模式下具有拖放支持。此外,属性uniqueItems设置为的枚举数组设置true现在仅显示剩余选项而不是下拉列表中的所有选项。...对笔记本布局进行了一些改进: 当单元格折叠时,单元格输入的第一行现在被渲染。 当窗口的宽度不足以呈现所有主要操作时,笔记本编辑器工具栏上的操作将移动到溢出菜单 ( ... ) 中。...默认情况下,禁用此设置以保留当前行为。如果你在侧面打开编辑器并稍后关闭该编辑器组,只是为了再次打开编辑器到侧面,则不会恢复视图状态,因为您正在打开一个新的编辑器组。...但是,当你启用此设置时,除非为编辑器组找到更具体的视图状态,否则将在所有编辑器组中保留并使用最新的编辑器视图状态。...此功能本质上是一种简化的调试模式,可让你逐行执行单元代码,而无需任何复杂的调试 UI。

    1.7K30

    PyCharm 2022.1发布,会有哪些特性

    IDE 对自定义包存储库的身份验证支持 可以配置基本的HTTP身份验证,以便通过PyCharm访问自定义包存储库和管理依赖关系,而无需切换到终端进行手动安装。...现在,当需要使用TypedDict的地方使用一个字面值或使用dict构造函数创建的字典时,PyCharm将显示每个键的错误消息,指向错误、缺失或不期望的单个值。...改进Markdown支持 从Markdown文件中运行命令 在使用Markdown文件(例如README文件)时,您经常会发现指令和要执行的命令。...Jupyter支持(Pro) 代码单元格在执行后保持在编辑模式 为了使工作与木星笔记本一个更流畅的体验,新的单元格插入后,运行单元格和插入下面现在默认为编辑模式所以你可以马上开始用它写代码。...同样的行为也适用于编辑并决定运行当前单元格时。即使在执行之后,它仍将保持在编辑模式。

    23920

    【ChatGPT】JeecgBoot v3.6.3 AI版本发布,企业级低代码平台

    JeecgBoot引领低代码开发模式(OnlineCoding-> 代码生成-> 手工MERGE), 帮助解决Java项目70%的重复工作,让开发更多关注业务。...· Issue #962仪表盘设计中json数据源href配置了,但是不生效,点击没反应 · Issue #1024登录失败5次后锁定10分钟有误,实际只锁定了10S · Issue #5833三方登录获取手机验证码失败...,无法再次获取 · Issue #1014ApiSelect组件的下拉远程搜索 · Issue #1027编辑表单中,校验必填时,如果组件是ApiSelect,打开编辑页面时,即使该字段有值,也会提示请选择...Issue #1064JVxeInputCell小数输入有问题小数点后第一位是非0第二位是0就不能输入了 例如输入100.102会变成100.12 · Issue #1065BasicTable表格合计,可编辑单元格编辑完以后不更新合计值...· Issue #5907ApiTreeSelect组件入参变化时,不及时刷新数据 · Issue #1054企业微信集成,同步用户信息时,特殊字符导致失败的问题 · Issue #5887批量删除记录后

    24010

    TDesign 更新周报(2022年7月第3周)

    默认全选按钮会选中的问题兼容IE滚动条高度计算覆盖不全问题修复树形结构懒加载顺序问题可编辑单元格,修复 onEnter 无法触发 onEdited 问题;修复校验不通过时,无法退出编辑态的问题修复表格列宽拖拽到最大或最小时...,悬浮到表头时,显示表头边框 Bug FixesTable: 修复可编辑单元格,校验失败的信息无法清除问题Table: 树形结构,修复树形结构懒加载顺序问题Swiper: 动态修改 swiper item.../可编辑行,新增 showEditIcon,用于控制是否显示编辑图标table: 新增可编辑行的表格table: 可调整列宽,无边框表格,悬浮到表头时显示边框,方便用户寻找调整列宽的位置Button:...TagInput: 修复hover时组件换行的样式异常drawer: 修复开启 destroyOnClose 时多次打开关闭时动效丢失问题table: 可编辑单元格,修复无法透传 ReactNode 属性到组件...table: 可编辑单元格,修复 onEnter 无法触发 onEdited 问题table: 可编辑单元格,一旦校验不通过,后续编辑无法退出编辑态问题card: 修复 header 渲染失效问题Select

    2.8K30

    Java 近期新闻:字符串模板、Quarkus、Open Liberty、PrimeFaces、JobRunr、Devnexus

    字符串模板在运行时进行解释,即对嵌入式表达式进行计算和验证。评审预计将于 2023 年 4 月 13 日结束。...Oracle 技术顾问 Gavin Bierman发布 了 JEP 440(记录模式)和 JEP 441(switch 模式匹配)的联合规范变更文档的第一稿,供 Java 社区审阅。...Quarkus 2.16.6.Final 是第 6 个维护版本,带来了一些重要的更改,如:如果 ID 令牌验证失败,则删除会话 cookie;允许在 REST 客户端请求体中使用null;在响应式消息传递中支持可重复的...PrimeFaces PrimeFaces 12.0.4 修复了一些 Bug,并提供了一些新特性:恢复了CurrencyValidator类中定义的getExcelPattern()和validate...Gradle Gradle 8.1 的第 3 个候选版本带来了一些新特性,包括:对配置缓存的持续改进;支持依赖关系验证;改进 Groovy 闭包的错误报告;支持 Java lambdas;支持使用 JDK

    1.6K30

    Spread for Windows Forms快速入门(7)---单元格的交互操作

    单元格的编辑模式 通常情况下,当终端用户双击单元格时,编辑控件将允许用户在该单元格中输入内容。在一个单元格中编辑的能力被称为编辑模式。一些属性和方法可以用来自定义编辑模式的使用。...当一个单元格处于编辑模式时,活动单元格将显示一个I型光标,如下图所示。当该单元格不处于编辑模式时,活动单元格将显示一个焦点长方形,如下图所示。...image.png 一个单元格将进入编辑模式(开启编辑模式),当: 用户在单元格中输入内容 用户双击单元格 EditMode属性设置为true 一个单元格离开编辑模式(关闭编辑模式),当 用户按下回车键...如果你愿意,你可以使用EditModePermanent属性指定一个单元格, 当该单元格变为活动单元格时一直处于编辑模式。...你可以使用StartCellEditing 和 StopCellEditing方法启动和结束编辑模式。 锁定单元格 你可以锁定一个单元格或者一个区域内的单元格,并使之不能被终端用户编辑。

    1.4K100

    Spread for Windows Forms高级主题(3)---单元格的编辑模式

    理解单元格的编辑模式 通常情况下,当终端用户双击单元格时,编辑控件将允许用户在该单元格中输入内容。在一个单元格中编辑的能力被称为编辑模式。一些属性和方法可以用来自定义编辑模式的使用。...当一个单元格处于编辑模式时,活动单元格将显示一个I型光标,如下图所示。当该单元格不处于编辑模式时,活动单元格将显示一个焦点长方形,如下图所示。...如果你愿意,你可以使用EditModePermanent属性指定一个单元格,当该单元格变为活动单元格时一直处于编辑模式。...当一个单元格进入编辑模式时,触发EditModeOn事件;当一个单元格离开编辑模式时,触发EditModeOff事件。...这种情况可能会发生在一个复选框单元格中,或在不可编辑的组合框单元格中,或者当光标移动到超链接单元格中的时候。 当单元格处于编辑模式时,单元格备注指示器并不会出现 。

    1.9K60

    Confluence 6 为登录失败编辑,禁用和配置验证码

    在默认的情况下,验证码将会在失败登录次数达到的时候显示。 如果为登录失败编辑,禁用和配置验证码: 在屏幕的右上角单击 控制台按钮 ?  ...在左侧面板中选择 安全配置(Security Configuration) 选择 编辑(Edit) 希望启用验证码: 在 登录启用验证码(CAPTCHA on login)边上的选择框中选择 启用...在 最大允许授权失败尝试次数(Maximum Authentication Attempts Allowed)的输入框中输入数字,这个数字必须大于 0。...希望 禁用(disable)验证码,取消选择 启用(Enable)的选择框。 选择 保存(Save)。 屏幕截图:为登录失败配置验证码 ? 备注 禁用所有密码配置请求,包括在登录中使用验证码。

    1.3K10

    VsCode中使用Jupyter

    笔记本基本上处于只读模式,禁用了工具栏,除非将其设置为Trusted,否则无法编辑文件。 注意:在将Notebook设置为Trusted之前,您需要验证源代码和Markdown是否可以安全运行。...# 使用代码单元时,单元可以处于三种状态,即未选中,命令模式和编辑模式。...您还可以使用鼠标来更改模式,方法是单击单元格左侧或代码单元格中的代码/降价区域之外的垂直栏。 ---- 要从编辑模式切换到命令模式,请按ESC键。要从命令模式切换到编辑模式,请按Enter键。...当代码单元处于命令模式时,可使用A键在所选单元格上方添加一个单元格,并使用B键将所选单元格下方添加一个单元格。...(焦点仍保留在当前单元格上)。

    6.1K40

    Excel编程周末速成班第21课:一个用户窗体示例

    你可以看到,当用户单击“下一步”或“完成”按钮时,将执行验证。因此,不应将验证代码放在按钮的Click事件过程中,而应放在它自己的过程中。...注意:验证代码放置在函数中(而不是子过程),因此它可以将值返回给调用程序:如果验证成功,则返回True;如果失败,则返回False。 验证过程的代码如清单21-3所示。...重申一下,这是命令按钮应该执行的操作: “下一步”按钮验证数据。如果验证成功,则将数据输入工作表中,并清除该窗体以输入下一个地址。如果验证失败,则窗体将保留其数据,以便用户可以根据需要进行更正。...当然,在单击“下一步”按钮时,这是必需的,在单击“取消”或“完成”按钮时,这也是必需的。即使使用Hide方法隐藏了该窗体,它在下次显示时仍将所有数据保留在其控件中。因此,需要清除控件。...数据验证是任何数据输入程序的重要组成部分。 可以在输入数据之后或输入数据时执行数据验证。 当你的代码将在程序的多个位置中使用时,将其放在单独的过程中。

    6.2K10

    声明式数据建模、定义简单易懂:下一代 ORM 助你效率倍增 | 开源日报 No.102

    Prisma Client:为 Node.js 和 TypeScript 自动生成的类型安全查询构建器 Prisma Migrate:声明式数据建模和迁移系统 Prisma Studio:用于查看和编辑数据库中数据的...关键特点与核心优势: 自动生成并且类型安全:使用 Prismia 客户端进行查询时,可以获得完整地代码提示,并确保不会访问不存在属性。...提供查看和编辑数据的视图。...primefaces/primeng[4] Stars: 8.7k License: NOASSERTION picture 最完整的 Angular UI 组件库。...确定您伴侣的个性和背景故事 提供了 ChatGPT 和 Vicuna 上运行的多种类型 (如恋爱、友谊、娱乐等) AI 伴侣模型选择 使用相似度搜索来检索对话内容以提供更深入有趣的交流体验 在队列中保留对话记录

    27910

    转-RobotFramework用户说明书稿第2.1节

    这是用文本编辑器编辑时纯文本格式的一个非常明显的优越性,因为TSV无法控制数据对齐。...所以测试数据必须严格依照reST语法,否则解析将会失败。 注意 使用Robot Framework中的reST文件需要安装Python的docutils的模块。...为防止Robot Framework按照以上规则来解析数据,可以使用反斜杠 想在字符最前保留空格,例如:\ some text。 保留多个连续空格,例如:\ \ more text。...RF规定,当使用简单表格语法时,除了...以外,续行第一个单元格必须使用\ or ..。...下面是一个使用reST简单表格的格式例子: 对于方格式语法,续行首个单元格可以为空,当其是HTML表格时,第二个单元格需要包括...。

    5.1K20

    6 个新功能、39 个增强功能!JupyterLab 新版本更新!

    改进键盘导航 本次更新致力于优化键盘导航功能,特别关注提升用户体验和操作便利性: 笔记本单元格现在可保留焦点 现在可将焦点移至活动笔记本以外的位置 现在可以使用箭头键导航工具栏 笔记本中的执行历史 用户可以使用之前执行的代码来填充空白单元...当文件位于Jupyter根目录中时,这些链接会打开相应的文件以进行编辑;如果文件在根目录之外,且当前内核支持调试器,这些链接将以只读模式打开预览。...目录中的错误指示符 当单元格在执行过程中出现故障时,相应的标题会显示一个错误指示符,以提高对笔记本状态的认识,并使用户能够快速导航到需要注意的单元格。...窗口模式的虚拟滚动条 窗口笔记本现在有一个可选的滚动条,可显示活动单元格和选定单元格。用户可以跳转到特定单元格。...,会显示通知提示该单元格尚未执行(这是选择性的,需要在设置中启用) 改进全窗口模式 全窗口模式下的笔记本只渲染可见单元格,大大提高了应用程序的性能。

    1K10

    如何实现在线Excel多人协作

    锁定逻辑 当用户选中某个单元格时,前端把选中信息发送到服务端 服务端根据「excel_id和当前单元格坐标」取锁,取锁成功进行下一步;如果取锁失败,给当前用户返回此单元格正在被A用户编辑 服务端根据excel_id...,发送请求到服务端 服务端根据「excel_id和当前单元格坐标」取锁,取锁成功进行下一步;如果取锁失败,给当前用户返回此单元格正在被A用户编辑 服务端根据excel_id获取当前在线用户,发起事件广播...此外还存在间隙问题:用户在客户端选中一个单元格后,“请求到服务端加锁,然后发送广播到其他客户端“ 的间隙时间较长,这中间如果有用户快速修改了同一个单元格的内容,会存在内容被覆盖 或者 修改失败两种风险。...比如:遇到合并函数操作时,如何解决多个人操作的冲突?有人在修改一个单元格时,别的用户有合并单元格操作时如何处理?多个人同时修改一个单元格的逻辑能否优化?...消息传输层的问题尤其重要,需要单独说一下: 因为WebSocket消息是无序的,所以,以上场景依赖消息顺序时,都需要额外的保障机制 WebSocket发送消息有可能失败,在服务端和客户端通信时,是否需要

    2.6K20

    表格控件:计算引擎、报表、集算表

    启用后,当隐藏单元格处于活动状态时,编辑栏将不会显示任何数据,输入编辑器在编辑模式下将为空,并且公式编辑器面板将不会显示公式。 利用这个特性,可以保护一些单元格中的公式,避免使用者看到公式或修改。...真假 用于选中/取消选中,数据类型为 TRUE/FALSE 选择框 取决于选项 从预设列表中选择选项 Currency 数值 以文化格式指示货币 百分比 数值 以百分比格式指示数字 电话 文本 以掩码验证指示数字字符串...邮件 文本 以掩码验证指示电子邮件地址 链接 文本 指示 URL 文本 创建时间 日期 在创建记录时设置日期 修改时间 日期 在记录字段更新时设置日期 附件 对象 允许直接在记录上附加文件 条码 取决于输入...从字段生成指定的条形码 撤销重做支持 新版本集算表添加了撤消和重做支持,允许用户撤消/重做以下类别的操作: 配置更改:过滤、排序和其他配置设置 运行时 UI 操作:类似于工作表操作,如单元格编辑、添加...表格编辑器 自定义保存文件对话框 在新版本中,用户可以通过 API 设置保存时的文件格式以及文件名称,如下代码所示: 打印边框选项 SpreadJS 中已经存在 showBorder 方法,用于控制打印过程中是否显示边框

    13710

    提高效率 |ArcGIS Pro 中所有快捷键一网打尽

    注:使用草绘几何的编辑工具时,例如修整工具,此快捷方式将暂停草绘模式,并允许您向所选内容添加要素。 Ctrl+ 选择 移除所选要素。 从当前选择的内容中移除所选要素。...复制单元格中所选的值。 Ctrl+V 粘贴所选内容。 将复制的值粘贴到单元格。 F2 编辑单元格。 编辑当前单元格的内容。 Esc 取消操作。 取消编辑值并将原始值恢复到单元格。...保留 x 值和 y 值。这仅在启用立体模式时可用。 Ctrl+G 移动指针 z 值。 将指针 z 值移动到所选折点的高程。这仅在启用立体模式时可用。...如果选择了多个行,会从活动单元格所在的行开始移动。这在按顺序逐条处理表记录、查看或编辑各条记录及在地图上查找其表示的要素时尤为有用。 Ctrl+U 或 Ctrl+单击左上方单元格 切换选择内容。...Ctrl+V 将剪贴板中的内容粘贴到单元格或单元格区域中。 F2 编辑单元格的内容。 Enter 提交当前编辑。 Esc 取消单元格中的编辑并恢复原始值。

    1.4K20
    领券