Implement Property Value Validation in Code 在代码中实现属性值验证(XPO)
This lesson explains how to set rules for business classes and their properties. These rules are validated when an end-user executes a specified operation. This lesson will guide you through implementation of a rule that requires that the Position.Title property must not be empty. This rule will be checked when saving a Position object. You will also be able to see the user interface elements that report a broken rule.
本课介绍如何为业务类及其属性设置规则。当最终用户执行指定的操作时,将验证这些规则。本课将指导您完成一个规则的实施,该规则要求位置.Title 属性不能为空。保存"位置"对象时将检查此规则。您还可以看到报告损坏规则的用户界面元素。
Note注意
Before proceeding, take a moment to review the following lessons.
- Inherit from the Business Class Library Class (XPO)
- Implement Custom Business Classes and Reference Properties (XPO)
The validation functionality is provided by the Validation Module. Add this module to your MySolution.Module project. For this purpose, find the Module.cs (Module.vb) file in the MySolution.Module project displayed in the Solution Explorer. Double-click this file to invoke the Module Designer. In the Toolbox, navigate to the DX.19.2: XAF Modules section. Drag the ValidationModule item from this section to the Designer's Required Modules panel. Rebuild your solution.
在继续之前,请花点时间复习以下课程。
从商务舱库类 (XPO) 继承
实现自定义业务类和参考属性 (XPO)
验证功能由验证模块提供。将此模块添加到 MySolution.模块项目中。为此,在解决方案资源管理器中显示的 MySolution.模块项目中查找Module.cs(Module.vb)文件。双击此文件以调用模块设计器。在工具箱中,导航到 DX.19.2:XAF 模块部分。将验证模块项从此部分拖动到"设计器的必需模块"面板。重建解决方案。

In a WinForms application, add the ValidationWindowsFormsModule. This module creates validation error messages that are more informative and user friendly than the default exception messages. Additionally, this module provides in-place validation support (see IModelValidationContext.AllowInplaceValidation). To add this module, find the WinApplication.cs (WinApplication.vb) file in the MySolution.Win project displayed in the Solution Explorer, double-click this file to invoke the Application Designer and drag the ValidationWindowsFormsModule from the Toolbox to the Required Modules panel.
在 WinForms 应用程序中,添加验证窗口窗体模块。此模块创建比默认异常消息更丰富、更友好的验证错误消息。此外,此模块还提供就地验证支持(请参阅 IModel 验证上下文.允许位置验证)。要添加此模块,请在解决方案资源管理器中显示的 MySolution.Win 项目中查找WinApplication.cs (WinApplication.vb) 文件,双击此文件以调用应用程序设计器,并将验证Windows窗体模块从工具箱拖动到"必需模块"面板。
In an ASP.NET application, you can also add the ValidationAspNetModule. This module provides in-place validation support (see IModelValidationContext.AllowInplaceValidation). To add this module, find the WebApplication.cs (WebApplication.vb) file in the MySolution.Web project displayed in the Solution Explorer, double-click this file to invoke the Application Designer and drag the ValidationAspNetModule from the Toolbox to the Required Modules panel.
在ASP.NET应用程序中,还可以添加验证AspNet模块。此模块提供就地验证支持(请参阅 IModel 验证上下文.允许位置验证)。要添加此模块,请在解决方案资源管理器中显示的 MySolution.Web 项目中查找WebApplication.cs (WebApplication.vb) 文件,双击此文件以调用应用程序设计器,并将验证AspNet模块从工具箱拖动到所需的模块面板。
Apply the RuleRequiredFieldAttribute attribute to the Position class' Title property. As a parameter, specify the context for checking the rule (e.g., DefaultContexts.Save). The following code demonstrates this attribute.
将"规则所需字段属性"属性应用于职位类的"标题"属性。作为参数,指定用于检查规则的上下文(例如,DefaultContexts.Save)。以下代码演示此属性。
using DevExpress.Persistent.Validation;
//...
[DefaultClassOptions]
[System.ComponentModel.DefaultProperty(nameof(Title))]
public class Position : BaseObject {
//...
private string title;
[RuleRequiredField(DefaultContexts.Save)]
public string Title {
get { return title; }
set { SetPropertyValue(nameof(Title), ref title, value); }
}
}The RuleRequiredField attribute defines a validation rule that ensures that the Position.Title property has a value when the Position object is saved.
- RuleValuefield 属性定义一个验证规则,以确保在保存"位置"对象时,位置.Title 属性具有值。
- Run the WinForms or ASP.NET application. Click the New (
) button to create a new Position. Leave the Title property empty and click the Save button. The following error message will be displayed, depending on the application type.
WinForms Application
- 运行 WinForms 或ASP.NET应用程序。单击"新建(button_new)"按钮创建新职位。将"标题"属性留空并单击"保存"按钮。将显示以下错误消息,具体取决于应用程序类型。
WinForms 应用程序

ASP.NET Application
ASP.NET应用程序

This warning message will also be invoked if you click the Save and Close button, or perform another action that saves the object to the database.
如果单击"保存和关闭"按钮,或执行将对象保存到数据库的另一个操作,也会调用此警告消息。
Note
注意
You can use the Validate toolbar button to check to see if there are broken rules without saving the current object.
您可以使用"验证工具栏"按钮来检查是否有损坏的规则,而无需保存当前对象。
- In the WinForms application, close the window with the warning message, set a value for the Title property and click the Save button. In the ASP.NET application, set a value for the Title property and click the Save button. The object will be saved successfully.
- 在 WinForms 应用程序中,关闭带有警告消息的窗口,为 Title 属性设置值,然后单击"保存"按钮。在ASP.NET应用程序中,为 Title 属性设置值,然后单击"保存"按钮。对象将成功保存。
Note
The Validation System provides a number of Rules and Contexts. For details, refer to the Validation Rules topic. Information on Rules applied in code is loaded into the Application Model (see the Implement Property Value Validation in the Application Model topic). This allows a business application administrator to add and edit Rules and Contexts via the Model Editor.
注意
验证系统提供许多规则和上下文。有关详细信息,请参阅验证规则主题。有关在代码中应用的规则的信息将加载到应用程序模型中(请参阅应用程序模型主题中的实现属性值验证)。这允许业务应用程序管理员通过模型编辑器添加和编辑规则和上下文。
You can see the code demonstrated here in the MySolution.Module | Business Objects | Contact.cs (Contact.vb) file of the Main Demo installed with XAF. The MainDemo application is installed in %PUBLIC%\Documents\DevExpress Demos 19.2\Components\eXpressApp Framework\MainDemo by default. The ASP.NET version is available online at http://demos.devexpress.com/XAF/MainDemo/
您可以在 MySolution.模块 |业务对象 |Contact.cs (Contact.vb) 文件的主演示安装与 XAF.主演示应用程序安装在%PUBLIC%\Documents\DevExpress Demos 19.2\Components\eXpressApp Framework\MainDemo by default. The ASP.NET version is available online at http://demos.devexpress.com/XAF/MainDemo/
.
Implement Property Value Validation in Code 在代码中实现属性值验证(XPO)的更多相关文章
- XAF-在代码中实现属性值验证(EF)
This lesson explains how to set rules for business classes and their properties. These rules are val ...
- Implement Property Value Validation in the Application Model 在应用程序模型中实现属性值验证
In this lesson, you will learn how to check whether or not a property value satisfies a particular r ...
- <s:property="a" value=""/>取的<s:debug></s:debug>中的value stack中的属性值
<s:property="a" value=""/>取的<s:debug></s:debug>中的value stack中 ...
- Access the Security System in Code 在代码中访问安全系统
This lesson will guide you through using the static SecuritySystem class to check whether or not a u ...
- 【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等
什么是 PaaS?Platform as a Service 平台即服务 (PaaS) 是云中的完整开发和部署环境,你可以使用其中资源交付内容,从基于云的简单应用到启用云的复杂企业应用程序皆可.你以即 ...
- How do I duplicate a resource reference in code behind in WPF?如何在WPF后台代码中中复制引用的资源?
原文 https://stackoverflow.com/questions/28240528/how-do-i-duplicate-a-resource-reference-in-code-behi ...
- Code Snippets 代码片段
Code Snippets 代码片段 1.Title : 代码片段的标题 2.Summary : 代码片段的描述文字 3.Platform : 可以使用代码片段的平台,有IOS/OS X/ ...
- Entity Framework 5.0系列之自动生成Code First代码
在前面的文章中我们提到Entity Framework的"Code First"模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Framework P ...
- 自动生成Code First代码
自动生成Code First代码 在前面的文章中我们提到Entity Framework的“Code First”模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Fram ...
随机推荐
- C# (转载)webbrowser专题(参考资料:https://www.cnblogs.com/blogpro/p/11458390.html)
C# .Net 2.0实例学习:WebBrowser页面与WinForm交互技巧 2 Study Case :高亮显示 上一个例子中我们学会了查找文本——究跟到底,对Web页面还是只读不写.那么,如果 ...
- python基础之列表讲解
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 如下图所示,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可.(接下来的演 ...
- 解决JRebel对myBatis Mapper 失效的问题
解决JRebel对myBatis Mapper 失效的问题 在之前的文章中介绍了JRebel这个插件的使用和优势,虽然它对配置文件的改动的热更新是生效的,但是mybatis的mapper文件的改动却无 ...
- 带你揭秘Shiro(二)
授权流程 1.对subject进行授权,调用方法isPermitted("permission串") 2.SecurityManager执行授权,通过ModularRealmAut ...
- ETCD:客户端v3
原文地址:etcd/clientv3 etcd/clientv3是v3版本的Go etcd官方客户端 安装 go get go.etcd.io/etcd/clientv3 开始 创建客户端使用clie ...
- 三个月前的评测拖延三个月仍旧是拳王No.1吗?YES!
距前作展开隐形的翅膀,WPR003N补完篇仿佛已经隔了几个光年,最近替换了2019发现android sdk需要手冻放入一个tools2文件夹来延续Eclipse style的m$ distribut ...
- springboot向elk写日志
springboot里连接elk里的logstash,然后写指定index索引的日志,而之后使用kibana去查询和分析日志,使用elasticsearch去保存日志. 添加引用 implementa ...
- 使用create-react-app+react-router-dom+axios+antd+react-redux构建react项目
1.安装.构建 # 全局安装 npm install -g create-react-app # 构建一个my-app的项目 npx create-react-app my-app cd my-app ...
- 了解Bootstrap和开发响应式网站
什么是Bootstrap? Bootstrap是Twitter推出的一个开源的用于web前端开发的工具包.它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CS ...
- SAP_ECC6_EHP7_IDES安装文档ORACLE11G+WINDOWS2012 R2 问题总结
SAP_ECC6_EHP7_IDES安装文档ORACLE11G+WINDOWS2012 R2 问题总结 1.注意密码不能带@等特殊符号,否则会报如下错误,因为ORACLE数据是不容许密码带@的.@是一 ...