Spiga

Silverlight实例教程 - Validation数据验证开篇

2010-09-05 17:40 by jv9, 2811 visits, 收藏, 编辑

 

 

说起来Validation验证功能,相信大家都不陌生,在应用中,当需要用户交互输入时,开发人员都会加入一些验证代码,这样可以有效的避免应用异常出现,也可以使应用的错误提示信息清晰明了的显示在客户端,有利于异常定位,同时也提高用户体验。特别是在商业应用项目中,使用Validation功能,可以在数据存入存储设备前,进行格式,以及内容的校验,这样也提高了数据存储的安全性。

下面的ASP.NET的验证控件演示,是传统Web应用中最常见的验证效果,其中包括Required Field Validator,Range Validator等验证控件,

 

 Ajax Validation:

 

而Silverlight同样提供类似于ASP.NET验证控件的支持,在Silverlight Toolkit开源项目中,包含Data Input的Validation演示,

简单数据绑定验证,

 

下图为ValidationSummary控件演示:

 

 

为了帮助大家学习和掌握Silverlight的Validation功能,随后的几篇,我将详细介绍一下Silverlight的Validation功能,并将结合一些实例演示帮助大家理解Validation验证功能。

 

本系列应用开发环境是:

Windows 7 Ultimate 英文版

Visual Studio 2010 Premium 英文版

Expression Blend 4 Premium 英文版

Silverlight 4

 

Validation验证概述

Validation,是验证,校验的意思,通常发生在用户输入数据后,进行验证判断,以确认用户输入正确信息。在验证的方法中,我们可以简单的从两个验证类型理解Validation,

1. 语法验证,该验证类型是通过成员的数据类型定义对比验证当前输入数据类型得出的验证结果;

例如,定义一个int类型,而赋值是string时,则会返回错误异常,验证控件,将获取该异常信息反馈到客户端;

 

1 public int Zip {get;set}

 

 

语法验证经常发生在数据改变之前,其表现方式会在UI中体现;

 

2. 语义验证,该验证类型是将当前输入数据根据特定数据限制代码进行验证;

例如:指定某TextBox为必须输入,或者限定某TextBox内容长度,或者使用正则表达式控制其输入内容,最典型的例子是对电子邮件地址的验证:

 

语义验证通常会发生在数据改变之后,其表现方式可以由开发人员控制,不一定会在UI中体现;

 

一个简单的数据绑定,异常捕获验证时序图,本篇,不计划讲解该图,我将在随后的实例中,解释该验证原理。 

 

 

今天暂时介绍到这里,随后几篇将结合具体的Validation类和实例,讲解Silverlight Validation应用。

 

 

 

欢迎加我的微博在线交流: http://t.sina.com.cn/edmonton

 

同时欢迎大家加入"专注Silverlight" 技术讨论群:

32679955(六群)
23413513(五群)
32679922(四群)
100844510(三群)
37891947(二群)
22308706(一群)

 

 

Add your comment

5 条回复

  1. #1楼 sun8134      2010-09-06 09:04
    好文要顶
     回复 引用 查看   
  2. #2楼 changjun86      2010-09-06 09:35
    赞一个...
     回复 引用 查看   
  3. #3楼 Qinw      2010-09-06 10:01
    求高手指点 能问个问题吗? 我都搞了两天了 文档也看了 还是弄不了
    string test = "<my:ImageLabel xmlns:my='clr-namespace:Word.UI.QinwWordTool;assembly=ImageLabel' xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' HorizontalAlignment='Left' Margin='173,117,0,0' VerticalAlignment='Top' />";

    ShowXaml.Children.Add(XamlReader.Load(test) as UIElement);
    错误提示:找不到类型"ImageLabel",因为'clr-namespace:Word.UI.QinwWordTool;assembly=ImageLabel'为未知命名空间
     回复 引用 查看   
  4. #4楼 J.Motto      2010-09-06 22:24
    帮顶,帮顶,自己也下载一个研究去……
     回复 引用 查看   
  5. #5楼[楼主] jv9      2010-09-08 00:41
    @Qinw
    ImageLabel,先使用正常,静态调用看看是否能成功,确认自定义控件都正常后,在尝试动态调用。看你的错误提示,还是控件没有声明成功造成的错误。
     回复 引用 查看