没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:龚雪|2022-10-18 11:09:51.997|阅读 71 次
概述:本文将介绍如何使用DevExtreme控件实现异步验证功能,欢迎下载相关组件体验!
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能齐全的数据网格、交互式图表小部件、数据编辑器等。
现在可以使用异步验证规则在服务器上执行字段验证逻辑,实现函数validationCallback来返回一个Promise(或者jQuery的等效函数)。
下面是一个示例:
$('#textBox').dxTextBox({ ... }) .dxValidator({ validationRules: [{ type: 'async', message: 'Invalid value', validationCallback: ({value}) => new Promise((resolve, reject) => { fetch('//mydomain.com/validationService', { method: 'POST', body: JSON.stringify({ data: value }) }) .then(res => { if (!res.ok) throw new Error(`HTTP error: ${res.status} ${res.statusText}`); // Assuming the server returns JSON return res.json(); }) .then(serverResult => { // Server decided whether data is valid if (serverResult.dataIsValid) resolve(); else reject(serverResult.errorMessage); }) .catch(error => { // There's been a technical error. console.error('Server-side validation error', error); // Decide what to tell the user. reject('Cannot contact validation server'); }); }); } }] });
如果Promise被解析,验证就成功,如果Promise被拒绝,验证就失败。然而还有一个选择,您可以用一个像这样的对象来解析Promise:
{ isValid: false, message: 'Invalid value' }
DevExtreme目前支持这种场景,允许您直接返回服务器结果,不需要任何额外的逻辑。在这种情况下,即使Promise被解析,验证的成功或失败取决于isValid属性,失败时将向用户显示可选消息。为了说明这个用例,下面是一个短的示例:
validationCallback(params) { return $.getJSON('//mydomain.com/validationService', { data: params.value }); }
注意,如果不进行任何处理,您可能会将技术错误作为验证消息显示给最终用户,推荐考虑边界情况的更详细的算法,如第一个示例所示。
为了保持有效的验证,总是首先评估任何同步规则,只有在所有同步规则都通过时才评估异步规则。一旦异步验证开始,所有这些规则都将被并行检查。
我们增加了对ASP.NET [Remote]属性在ASP.NET Core和ASP.NET MVC上启用异步验证,您可以将此属性应用到模型的属性中,传递控制器的名称和要调用的方法进行验证。
[Remote("CheckEmailAddress", "Validation")] public string Email { get; set; }
该属性自动为' async '验证规则生成客户端代码,回调服务器上运行的控制器,控制器方法应该检查有效性:
[HttpPost] public IActionResult CheckEmailAddress(string email) { if (!_userRepository.VerifyEmail(email)) { return Json($"Email {email} is already registered."); } return Json(true); }
这段代码使用Microsoft文档中为.NET Core Remote属性定义的返回值。
或者,您也可以以上面描述的JSON格式返回有效性信息,包括isValid和message字段,这允许您在.NET Core中创建验证服务,这些服务与为其他受支持的DevExtreme平台编写的客户端兼容。
如果在或 上调用validate(),并且有要检查的异步规则,则需要使用 属性提供的Promise接口来处理结果。
const result = validator.validate(); // OR validationGroup.validate(); result.complete.then(res => { // res.status is 'valid' if all rules passed // res.status is 'invalid' if any rules failed if (res.status === 'invalid') { // res.brokenRules contains an array of rules // that failed validation } });
此时当您使用行、批处理或单元格编辑模式时,数据网格和树列表小部件不支持异步规则。
DevExpress技术交流群6:600715373 欢迎一起进群讨论
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn
文章转载自:慧都网HOOPS Visualize凭借静态模型、LOD分块、多线程渲染及out‑of‑core点云处理等技术,在大模型可视化领域表现优异。无论是汽车、航空航天,还是建筑BIM与AR/VR应用,它都能提供流畅的交互和高保真的渲染效果,为各行业的数字化转型提供强大支持。
Axure RP支持创建高保真的动态交互原型,通过事件触发器、条件逻辑和动作,模拟真实用户场景,让设计意图一目了然。Axure RP还能生成详细的设计流程图,并一键发布到云端,方便团队协作和实时反馈。
Parasoft Jtest的静态分析功能通过模式匹配、数据流分析等技术,在编码阶段实时发现并修复代码缺陷,提升代码质量和可靠性。Jtest还能识别安全风险,确保符合多种安全标准,并利用AI技术优化问题修复流程,加速修复。
时序数据库(TSDB)因应对高频率时间数据存储与分析需求而兴起,成为传统关系型数据库(RDBMS)的有力补充。本文将探讨传统数据库与时序数据库的融合与协作方式,分析它们在不同应用场景下的配合实践,以及云服务和工具在简化多数据库管理中的角色。通过合理的技术选型与整合,企业能够更高效地释放时间数据的价值。
高性能HTML5/JavaScript开发框架,利用现代Web开发堆栈构建优异性能的应用程序。
DevExpress Universal Subscription优秀的界面控件开发包,帮助企业构建卓越应用!
DevExpress DXperience Subscription高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@wqylolg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢