<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!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>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style="width: 511px">
<tr>
<td style="width: 75px">
用户名</td>
<td style="width: 179px">
<asp:TextBox ID="username" runat="server"></asp:TextBox></td>
<td style="width: 207px">
<asp:CustomValidator ID="valxusername" runat="server" ErrorMessage="CustomValidator" OnServerValidate="valxusername_ServerValidate" ValidateEmptyText="True" Display="None"></asp:CustomValidator></td>
</tr>
<tr>
<td style="width: 75px">
密码</td>
<td style="width: 179px">
<asp:TextBox ID="password" runat="server" TextMode="Password"
Width="148px"></asp:TextBox></td>
<td style="width: 207px">
<asp:CustomValidator ID="valxpassword" runat="server" Display="None" ErrorMessage="CustomValidator" OnServerValidate="valxpassword_ServerValidate" ValidateEmptyText="True"></asp:CustomValidator></td>
</tr>
<tr>
<td style="width: 75px">
确认密码</td>
<td style="width: 179px">
<asp:TextBox ID="repassword" runat="server" TextMode="Password"
Width="148px"></asp:TextBox></td>
<td style="width: 207px">
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="password"
ControlToValidate="repassword" Display="None" ErrorMessage="两次应输入相同的密码!"></asp:CompareValidator></td>
</tr>
<tr>
<td colspan="3" style="height: 44px">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Style="left: 160px;
position: relative; top: 2px" Text="Button" /></td>
</tr>
<tr>
<td colspan="3" style="height: 44px">
<asp:Label ID="Label1" runat="server" Style="left: 78px; position: relative; top: 0px"
Width="176px"></asp:Label></td>
</tr>
<tr>
<td colspan="3" style="height: 44px">
<asp:ValidationSummary ID="ValidationSummary1" runat="server"
HeaderText="错误信息如下:" ShowMessageBox="True" ShowSummary="False" />
</td>
</tr>
</table>
</div>
</form>
</body>
</html> 以上程序包括3个用户输入控件,用户名、密码、确认密码,要求用户名不能为空(由customValidator实现验证) 密码长度3-6之间(由customValidator实现验证) 确认密码与密码相同(由CompareValidator实现验证),汇总所有错误提示信息统一由ValidationSummary显示。以下程序为后台代码:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.Title = "验证控件综合使用";
username.Focus();
}
protected void valxusername_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = true;
if(username.Text==""){ valxusername.ErrorMessage = "用户名不能为空!";
args.IsValid = false;
}
}
protected void valxpassword_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = true;
if (password.Text.Length<3 || password.Text.Length>6)
{
valxpassword.ErrorMessage = "密码长度为3-6之间!";
args.IsValid = false;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if(Page.IsValid){ Label1.Text="验证通过";
}else{ Label1.Text = "验证不通过";
}
}
}
现在,确认密码的错误提示信息可以由ValidationSummary显示,但是两个用户定义验证控件的错误提示信息不能在ValidationSummary中显示,如何才能显示呢?
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style="width: 511px">
<tr>
<td style="width: 75px">
用户名</td>
<td style="width: 179px">
<asp:TextBox ID="username" runat="server"></asp:TextBox></td>
<td style="width: 207px">
<asp:CustomValidator ID="valxusername" runat="server" ErrorMessage="CustomValidator" OnServerValidate="valxusername_ServerValidate" ValidateEmptyText="True" Display="None"></asp:CustomValidator></td>
</tr>
<tr>
<td style="width: 75px">
密码</td>
<td style="width: 179px">
<asp:TextBox ID="password" runat="server" TextMode="Password"
Width="148px"></asp:TextBox></td>
<td style="width: 207px">
<asp:CustomValidator ID="valxpassword" runat="server" Display="None" ErrorMessage="CustomValidator" OnServerValidate="valxpassword_ServerValidate" ValidateEmptyText="True"></asp:CustomValidator></td>
</tr>
<tr>
<td style="width: 75px">
确认密码</td>
<td style="width: 179px">
<asp:TextBox ID="repassword" runat="server" TextMode="Password"
Width="148px"></asp:TextBox></td>
<td style="width: 207px">
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="password"
ControlToValidate="repassword" Display="None" ErrorMessage="两次应输入相同的密码!"></asp:CompareValidator></td>
</tr>
<tr>
<td colspan="3" style="height: 44px">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Style="left: 160px;
position: relative; top: 2px" Text="Button" /></td>
</tr>
<tr>
<td colspan="3" style="height: 44px">
<asp:Label ID="Label1" runat="server" Style="left: 78px; position: relative; top: 0px"
Width="176px"></asp:Label></td>
</tr>
<tr>
<td colspan="3" style="height: 44px">
<asp:ValidationSummary ID="ValidationSummary1" runat="server"
HeaderText="错误信息如下:" ShowMessageBox="True" ShowSummary="False" />
</td>
</tr>
</table>
</div>
</form>
</body>
</html> 以上程序包括3个用户输入控件,用户名、密码、确认密码,要求用户名不能为空(由customValidator实现验证) 密码长度3-6之间(由customValidator实现验证) 确认密码与密码相同(由CompareValidator实现验证),汇总所有错误提示信息统一由ValidationSummary显示。以下程序为后台代码:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.Title = "验证控件综合使用";
username.Focus();
}
protected void valxusername_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = true;
if(username.Text==""){ valxusername.ErrorMessage = "用户名不能为空!";
args.IsValid = false;
}
}
protected void valxpassword_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = true;
if (password.Text.Length<3 || password.Text.Length>6)
{
valxpassword.ErrorMessage = "密码长度为3-6之间!";
args.IsValid = false;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if(Page.IsValid){ Label1.Text="验证通过";
}else{ Label1.Text = "验证不通过";
}
}
}
现在,确认密码的错误提示信息可以由ValidationSummary显示,但是两个用户定义验证控件的错误提示信息不能在ValidationSummary中显示,如何才能显示呢?
解决方案 »
- 最近准备跳槽,网上找了些资料,谁无聊来回答吧。
- SQL top join排序的问题
- asp.net中如何获取路径
- 我把一个用户控件放在一个DATALIST里面,现在要对用户控件动态传值,应该怎么做?请大家指点
- 见一用VB写程序中用DataGrid.currentPageIndex=e.NewPageIndex 来指向新页,请问其中的e是什么类?
- 如何开窗按查询条件在Grid里挑选key值后,到后台数据库找到整笔记录写到页面?
- 急切请教
- 文件下载时,文件名称问题!(盼思归)
- 请教这句updata语句该如何改(vb)
- 关于“Microsoft .NET 框架 SDK 快速入门配置”
- 没有很多分,好心人帮忙
- 用C#获取客户端计算机名
用asp.net验证控件的好处可以做到不写服务端代码滴!
而楼主验证非空都在服务端,所以你根本没在用asp.net验证控件!!
我给楼主一段验证非空的代码,其他楼主可参照做!!
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1"
Display="Dynamic" ErrorMessage="不能为空!!" SetFocusOnError="True">*</asp:RequiredFieldValidator>
<asp:Button ID="Button1" runat="server" Text="Button" /><br />
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True"
ShowSummary="False" />
</div>
</form>