商信互联
在本课程中,您将学习如何检查属性值是否满足特定规则。为此,将使用DemoTask.Status属性和MarkCompleted Action。如果当前任务状态为“未启动”,则不应执行此操作。因此,执行MarkCompleted Action时将检查规则。
验证功能由“验证模块”提供,该模块已在“代码中实现属性值验证”(XPO)课程中添加。当将此模块添加到MySolution.Module项目中时,“应用程序模型”中的“验证”节点可用。该节点定义了应用程序中使用的验证上下文和规则。您可以使用模型编辑器添加规则并指定上下文。
调用MySolution.Module项目的模型编辑器。导航到验证| 规则节点。它已经包含定义要检查规则的子节点。例如,它可能包含“在代码中实现属性值验证”(XPO)课程中实现的“ Position.Title的RuleRequiredField ”规则。要添加检查特定条件的新规则,请右键单击“规则”节点,然后选择“添加...”。RuleCriteria。
“验证规则”主题中提供了所有可用规则类型的描述。
对于新创建的节点,将TargetType设置为“ MySolution.Module.BusinessObjects.DemoTask”,并将Criteria属性设置为“ Status!='NotStarted'”。将ID属性设置为“ TaskIsNotStarted”,将TargetContextIDs设置为“ MarkCompleted”,并将CustomMessageTemplate设置为“由于任务尚未启动,因此无法将其设置为已完成”。
该标准的属性值必须使用指定的标准语言的语法。为了简化此任务,您可以通过单击“条件”值右侧的省略号按钮()来调用“过滤器生成器”对话框。在此对话框中,您可以直观地设计条件表达式。
该TargetContextIDs属性设置为“MarkCompleted”。这意味着在执行其ValidationContexts属性设置为“ MarkCompleted”的操作时,将检查该规则。因此,将标记完成的操作的ValidationContexts属性(在ActionDesign | Actions | Task.MarkCompleted节点中)设置为“ MarkCompleted”。
您还可以使用默认情况下可用的“保存”或“删除”上下文。分别保存或删除对象时,将验证具有这些上下文的规则(请参见“验证规则”)。
运行WinForms或ASP.NET应用程序。将“未启动”值分配给现有DemoTask对象之一的Status属性。单击“标记完成”按钮。将显示以下“验证错误”对话框。
您可以在“模型编辑器”中看到本课程中所做的更改,该模型编辑器针对“主演示” | “模型”中的Model.DesignedDiffs.xafml文件而调用。MainDemo.Module项目。该MainDemo应用程序安装在%PUBLIC%\文件\ DevExpress的演示19.2 \组件\ eXpressApp框架\ MainDemo默认。可从http://demos.devexpress.com/XAF/MainDemo/在线获得ASP.NET版本。
下一课: 自定义查看项目的布局