CustomValidator控件允许用户自定义验证,可以在服务器端验证,可以在客户端验证,也可以在客户端和服务端同时验证。
下面的例子是验证一个数能否被2整除
1. 服务器端验证
在验证的时候会用到IsValid这个属性,根据IsValid的值(true/false)来判断是否通过页面验证。
a. 拖放控件TextBox用于输入值;Button用于测试验证状态,IsValid为true触发Click事件;CustomValidator控制要验证的对象和验证事件等。
b. 设置CustomValidator的属性这里设置ErrorMessage为Not an even number!,ControlToValidate为Text1
c. 编写CustomValidator的ServerValidation事件
Protected Sub ServerValidation(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
Try
Dim num As Integer = Integer.Parse(args.Value)
args.IsValid = ((num Mod 2) = 0)
Catch ex As Exception
args.IsValid = False
End Try
End Sub
d. 编写Button的Click事件
Protected Sub ValidateBtn_OnClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
If Page.IsValid Then
Message.Text = "Page is valid."
Else
Message.Text = "Page is not valid!"
End If
End Sub
2. 客户端验证
使用javascript function验证,并用设置ClientValidationFunction为javascript 验证函数(function)
a. Javascript 函数
<script language="javascript">
function ValidateNumber(source,args)
{
if(args.Value%2==0)
{
args.IsValid=true;
}
else
{
args.IsValid=false;
}
}
</script>
b. 设置CustomValidator的属性这里设置ErrorMessage为请输入能被2整除的数,ControlToValidate为TextBox1, ClientValidationFunction为ValidateNumber
c. 编写Button的Click事件
Protected Sub ValidateBtn_OnClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
If Page.IsValid Then
Message.Text = "Page is valid."
Else
Message.Text = "Page is not valid!"
End If
End Sub
d.
3. 客户端和服务端同时验证
将上面的两部分代码合并就OK了。