您的位置:首页 > 编程语言 > ASP

ASP.NET利用CustomValidator的ClientValidationFunction与OnServerValidate来double check资料输入的正确性

2011-11-21 16:20 393 查看
最近网友问一个CustomValidator验证控制项的问题

后来发现这个CustomValidator有一個ClientValidationFunction

去找了msdn,才知道可以利用client端来验证输入的资料

一般资料的验证分两种,一是Client端验证,二是Server端验证

但是如果只做Client端验证,会有危险,使用者可以用一些工具跳過Client验证

但是如果只做Server端验证,每次都要把资料送回Server,如果一直验证不過,Server要处理很多次

所以最好的方法就是Client与Server都做检查,此CustomValidator就可以达到此需求了..

asp.net(c#)

CustomValidatorDoubleCheck.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomValidatorDoubleCheck.aspx.cs"
Inherits="CustomValidatorDoubleCheck" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>CustomValidatorDoubleCheck</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblName" runat="server" Text="名稱:"></asp:Label>
<asp:TextBox ID="txbName" runat="server"></asp:TextBox>
<asp:Button ID="btnAdd" runat="server" Text="新增" OnClick="btnAdd_Click" />
<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction="check"
ControlToValidate="txbName" Display="Dynamic" OnServerValidate="CustomValidator1_ServerValidate"
ValidateEmptyText="True"></asp:CustomValidator></div>
</form>
</body>
</html>

<script type="text/javascript">
function check(source, arguments)
{
if(arguments.Value.length<5)
{
alert("長度要大於4");
arguments.IsValid = false;
}
else
{
arguments.IsValid = true;
}
}

</script>


CustomValidatorDoubleCheck.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class CustomValidatorDoubleCheck : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
if (args.Value.Length < 5)
{
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "msg", "<script>alert('長度要大於4');</script>");
args.IsValid = false;
}
else
{
args.IsValid = true;
}
}
protected void btnAdd_Click(object sender, EventArgs e)
{
if (this.Page.IsValid)
{
Response.Write("新增成功");
}
else
{
Response.Write("新增失敗");
}
}
}


執行結果:





转载网址:http://www.dotblogs.com.tw/puma/archive/2008/09/28/5511.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐