日期:2014-05-17  浏览次数:20404 次

asp.net控件验证问题
在设计asp.net程序时,有时需要对某个输入控件使用多个验证控件,例如:对输入文本框控件进行“RequiredFieldValidator”和“RegularExpressionValidator”验证,我使用如下实例进行练习:

<%@ 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></title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
  输入Email:<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
  <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
  ErrorMessage="请输入Email" ControlToValidate="txtEmail"></asp:RequiredFieldValidator>
  <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
  ErrorMessage="输入Email不合法" ControlToValidate="txtEmail" 
  ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
  <br />
  <asp:Button ID="Button1" runat="server" Text="提交" />
  </div>
  </form>
</body>
</html>

但是这样有一个缺点,就是验证不通过时,两个验证控件的错误信息不在同一个位置显示,感觉这样很不好,我想让两个验证控件的错误信息出现在同一个位置,如:上述中,当Email输入文本框控件在没有输入任何内容时,就单击提交按钮,就显示“请输入Email”,当Email输入文本框控件的Email的输入不合法是,就显示“输入Email不合法”,希望前后的显示信息出现在同一个位置,但我不知道怎么实现,希望哪个可以教教我,谢啦。希望你技术分享。嘿嘿。。。

------解决方案--------------------
ValidationSummary控件 和你需要在一起显示的验证绑定在一个ValidationGroup里面
坦白说验证控件和Repeater是我最喜欢的服务器控件~
------解决方案--------------------
设置前一个验证控件的 Display="Dynamic"
------解决方案--------------------
正解 

探讨
设置前一个验证控件的 Display="Dynamic"