积极答复者
silverlight的验证控件到底怎么验证的?太奇怪了!!

问题
-
xmlns:dataform="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm" …… <TextBox x:Name="zip" Text="{Binding Zip, Mode=TwoWay, ValidatesOnExceptions=true, NotifyOnValidationError=true}" /> <dataform:DescriptionViewer Target="{Binding ElementName=zip}" />
我最近在读一套控件的demo,一个要求输入zip的文本框,一个对这个文本框的验证。
我输入了“张三”,验证控件出现了,红色的底,几个汉字“输入的字符串格式不对”
我又输入了“123”,出现另外一句话,英文的,大概意思是“只能为5位数字”。
我很迷惑的是:这些验证的方式,和验证之后的文字,在哪儿呢?咋在代码里就找不到。
如果我想修改验证后的文字,怎么修改呀,或者我不想验证zip,我想验证是否为空,或验证是否为email。
纳闷了,几个验证控件都一样,只显示了Target绑定了哪个控件,怎么就没显示验证的方式,验证的文字呢???
后台代码也没找到。觉得很纳闷。
谢谢呀。- 已编辑 woodynet 2009年5月10日 17:17
答案
-
Silverlight是异步处理的RIA程序,如果只验证某TextBox添加
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (sender != null)
{
Regex myReg = new Regex("^\\d*$");
string str = ((TextBox)(sender)).Text;
HtmlPage.Window.Alert(myReg.IsMatch(str).ToString());
}
}
就可以了,没必要非要用控件,要比asp.net灵活的多。
控件不是Silverlight程序必须使用的,也不是所有应用用到某些控件了就是好程序:)- 已标记为答案 woodynet 2009年5月11日 9:18
全部回复
-
contactGrid.DataContext = Contact.JohnDoe; 绑定到了内容
验证都在Contact类里有写/// <summary> /// Gets or sets the zip code of the contact. /// </summary> [Required] [RegularExpression(@"^\d\d\d\d\d$", ErrorMessage = "Zip codes must be 5-digit numbers.")] [Display(Name = "Zip", Description = "Five-digit zip code", GroupName = "Address")] public int Zip { get { return zip; } set { if (value != zip) { Validator.ValidateProperty(value, new ValidationContext(this, null, null) { MemberName = "Zip" }); zip = value; OnPropertyChanged("Zip"); } } }
在绑定的同时要把要数据验证的类型写在绑定类里 -
Silverlight是异步处理的RIA程序,如果只验证某TextBox添加
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (sender != null)
{
Regex myReg = new Regex("^\\d*$");
string str = ((TextBox)(sender)).Text;
HtmlPage.Window.Alert(myReg.IsMatch(str).ToString());
}
}
就可以了,没必要非要用控件,要比asp.net灵活的多。
控件不是Silverlight程序必须使用的,也不是所有应用用到某些控件了就是好程序:)- 已标记为答案 woodynet 2009年5月11日 9:18
-
现在的Silverlight好像并没有达到ASP.NET控件的程度,但未来肯定会像ASP.NET的验证功能一样,规则肯定应该可以写在控件里!不然就没有意义了,呵呵……
My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com
My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com