Chinaunix首页 | 论坛 | 博客
  • 博客访问: 69189
  • 博文数量: 23
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 210
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-03 15:02
文章分类

全部博文(23)

文章存档

2017年(1)

2016年(5)

2015年(1)

2014年(5)

2013年(11)

我的朋友

分类: 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,具体配置如下:

点击查看大图

DevExpress13.2 Rul.ueComparison

当然你也可以在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就会出现以下效果:

点击查看大图

DevExpress13.2 个JohnNilsen

List Views

经测试后发现,List Views里面也支持比较灵活的验证机制,连多选情况下都支持。不过我发现这个版本中还有些地方运行不是很顺畅,只能期待DevExpress在下一个版本中能将这个问题解决。下面跟大家举个例子:为一个类添加规则:

1
2
[RuleCriteria("Deletion_Warning", DefaultContexts.Delete, "1=0", "Warning! Are you sure?", ResultType =
ValidationResultType.Warning)]

然后选中所有的联系方式然后按下Delete,确认窗口之后,我看到了这个:

DevExpress13.2 ValidationResultType

Web Application

另外一个值得一提的是Web应用程序,它也支持验证规则,它的警告信息时这样的:

点击查看大图

DevExpress13.2 Web Application

其实我更愿意看到一个Confirm按钮而不是Ignore复选框。我觉得如果同时出现几个警告和错误的话,当前的窗口可以全部显示出来,而如果没有错误的话就最好不要出现警告。

以上便是我对DevExpress 13.2的一些使用体验。这个版本主要是将精力放在了功能优化上,有了更好的报表,更好的验证机制,而不是专注于新模块的开发,我想这应该是2014版本的主要任务。

阅读(1352) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~