分类: C#/.net
2014-01-22 14:15:16
正式版已经发布一段时间了,试用版出来之后我就迫不及待的下来试用了一下。下面我想跟大家分享一下我的一些试用体会。
在2013.2中,DevExpress 的验证引擎新增支持警告/确认消息,警告可用于处理不寻常的但有效的数据输入,比如:
The date of birth results in an age of over 100. Are you sure?
这里年龄的输入为100但这是不合常理的,所以这里虽然不会直接禁止掉这种输入,但DevExpress会给出一个验证机制,让用户确认之后再保存。
接下来尝试将这个规则加入MainDemo中,打开Validation的模型和导航,添加一个RuleValueComparison,具体配置如下:
点击查看大图
当然你也可以在Birthday属性上定义这个规则,效果是一样的,代码如下:
1
2
3
4
5
6
|
[RuleValueComparison("IsOlderThan100_Warning",
DefaultContexts.Save,
ValueComparisonType.GreaterThan, "AddYears(Now(), -100)",
"Birthday makes this Contact older than 100. Are you sure?",
ParametersMode.Expression,
ResultType = ValidationResultType.Warning)]
|
注意新的ResultType参数要设置为ValidationResultType.Warning。
另一个典型的应用是如何更好的处理重复,可以参考以下代码:
1
2
3
4
5
6
7
|
[RuleCombinationOfPropertiesIsUnique("DuplicateName_Warning",
DefaultContexts.Save,
"LastName;FirstName",
"There is already a Contact with the name {FullName}. Are you sure?",
ResultType = ValidationResultType.Warning)]
public class Contact : Person {
//etc ...
|
这里如果添加另一个John Nilsen就会出现以下效果:
点击查看大图
经测试后发现,List Views里面也支持比较灵活的验证机制,连多选情况下都支持。不过我发现这个版本中还有些地方运行不是很顺畅,只能期待DevExpress在下一个版本中能将这个问题解决。下面跟大家举个例子:为一个类添加规则:
1
2
|
[RuleCriteria("Deletion_Warning", DefaultContexts.Delete, "1=0", "Warning! Are you sure?", ResultType =
ValidationResultType.Warning)]
|
然后选中所有的联系方式然后按下Delete,确认窗口之后,我看到了这个:
另外一个值得一提的是Web应用程序,它也支持验证规则,它的警告信息时这样的:
点击查看大图
其实我更愿意看到一个Confirm按钮而不是Ignore复选框。我觉得如果同时出现几个警告和错误的话,当前的窗口可以全部显示出来,而如果没有错误的话就最好不要出现警告。
以上便是我对DevExpress 13.2的一些使用体验。这个版本主要是将精力放在了功能优化上,有了更好的报表,更好的验证机制,而不是专注于新模块的开发,我想这应该是2014版本的主要任务。