关于 Length 属性的一个问题

May 21, 2010 at 9:45 AM
表映射的代码: [Length(1, 10)] public abstract string ContentText { get; set; } 数据源: public class NewsDataSource : DbEntryDataSource<News> { } 并在页面的数据源里做了关联: SaveButtonID="Save" 。 用 Length 属性设置了ContentText 字段能输入字符的范围,如果用户输入的文本超出了10,页面提示“字段 ContentText 格式错误。字段长度应该在 1 到 10,但是实际是 xxx “ 现在的问题,Length(1, 10) 是以字符个数来统计的,最大10个汉字,也就是20个字符,如果输入10个以上的字符验证就会说长度过长。 想实现验证用户可以输入10个汉字(20个字符),请问该如何做?
Coordinator
May 21, 2010 at 12:03 PM
[StringColumn(IsUnicode = false), Length(1, 10)] public abstract string ContentText { get; set; }
May 21, 2010 at 12:09 PM

还有一种情况,因为 ContentText 用的地方比较多,分别有多个范围,不希望在基类中定死,在数据源

<biz:NewsDataSource ID="NewsDataSource1" runat="server" SaveButtonID="Save"....

里的某个事件或者什么地方能加入自己的验证代码吗?

Coordinator
May 21, 2010 at 10:55 PM
Edited May 21, 2010 at 11:07 PM
在设计器模式,选中数据源控件,选择事件标签,创建相应的事件进行校验,校验不成功的,直接Throw Exception即可,一般是处理 OnObjectSaving 事件。
May 22, 2010 at 7:00 AM

谢谢~~