数据验证是为了防止用户录入错误数据或者
漏掉必须填写的数据而使得服务器出现不必要的错误,ASP.NET有验证控件方便我们进行数据验证,但是有时会出现这样或者那样的问题,我今天就遇到了一个,把验证控件说一下吧
这样用户如果在不输入信息的情况下直接点击Button2 ErrorMessage就不会出现
但是有时候需要我们在同一页面验证不同的信息,你肯定不能将按钮的 CausesValidation="false" 加上,我们需要加的是ValidationGroup属性
总结:使用验证组可以将页面上的验证控件归为一组。可以对每个验证组执行验证,该验证与同一页的其他验证组无关。
将要分组的所有控件的 ValidationGroup 属性设置为同一个名称(字符串)即可创建验证组。可以为验证组分配任何名称,但必须对该组的所有成员使用相同的名称。
http://www.cnblogs.com/interboy/archive/2006/11/21/566998.html
<
asp:TextBox
ID
="TextBox1"
runat
="server"
></
asp:TextBox
>
< asp:RequiredFieldValidator ID ="RequiredFieldValidator1" ControlToValidate ="TextBox1" runat ="server" ErrorMessage ="RequiredFieldValidator" ></ asp:RequiredFieldValidator >
< asp:Button ID ="Button1" runat ="server" Text ="Button1" />
上面的代码实现了最基本的验证,用户如果不输入信息而直接点击Button1那么ErrorMessage就会显示出来
< asp:RequiredFieldValidator ID ="RequiredFieldValidator1" ControlToValidate ="TextBox1" runat ="server" ErrorMessage ="RequiredFieldValidator" ></ asp:RequiredFieldValidator >
< asp:Button ID ="Button1" runat ="server" Text ="Button1" />
<
asp:TextBox
ID
="TextBox1"
runat
="server"
></
asp:TextBox
>
< asp:RequiredFieldValidator ID ="RequiredFieldValidator1" ControlToValidate ="TextBox1" runat ="server" ErrorMessage ="RequiredFieldValidator" ></ asp:RequiredFieldValidator >
< asp:Button ID ="Button1" runat ="server" Text ="Button1" />
< asp:Button ID ="Button2" runat ="server" Text ="Button2" />
在上面的代码中用户如果不输入信息而点击Button1或者Button2那么ErrorMessage都会显示出来.如果我不想让Button2引发验证怎么办呢? 好办,给Button2添加一个属性 CausesValidation="false" 如下
< asp:RequiredFieldValidator ID ="RequiredFieldValidator1" ControlToValidate ="TextBox1" runat ="server" ErrorMessage ="RequiredFieldValidator" ></ asp:RequiredFieldValidator >
< asp:Button ID ="Button1" runat ="server" Text ="Button1" />
< asp:Button ID ="Button2" runat ="server" Text ="Button2" />
<
asp:TextBox
ID
="TextBox1"
runat
="server"
></
asp:TextBox
>
< asp:RequiredFieldValidator ID ="RequiredFieldValidator1" ControlToValidate ="TextBox1" runat ="server" ErrorMessage ="RequiredFieldValidator" ></ asp:RequiredFieldValidator >
< asp:Button ID ="Button1" runat ="server" Text ="Button1" />
< asp:Button ID ="Button2" runat ="server" Text ="Button2" CausesValidation ="false" />
< asp:RequiredFieldValidator ID ="RequiredFieldValidator1" ControlToValidate ="TextBox1" runat ="server" ErrorMessage ="RequiredFieldValidator" ></ asp:RequiredFieldValidator >
< asp:Button ID ="Button1" runat ="server" Text ="Button1" />
< asp:Button ID ="Button2" runat ="server" Text ="Button2" CausesValidation ="false" />
这样用户如果在不输入信息的情况下直接点击Button2 ErrorMessage就不会出现
但是有时候需要我们在同一页面验证不同的信息,你肯定不能将按钮的 CausesValidation="false" 加上,我们需要加的是ValidationGroup属性
<
asp:TextBox
ID
="TextBox1"
runat
="server"
></
asp:TextBox
>
< asp:RequiredFieldValidator ID ="RequiredFieldValidator1" ControlToValidate ="TextBox1" ValidationGroup ="basicInfo" runat ="server" ErrorMessage ="error form textbox1" ></ asp:RequiredFieldValidator >
< asp:Button ID ="Button1" ValidationGroup ="basicInfo" runat ="server" Text ="Button1" />
< asp:TextBox ID ="TextBox2" runat ="server" ></ asp:TextBox >
< asp:RequiredFieldValidator ID ="RequiredFieldValidator2" ControlToValidate ="TextBox2" ValidationGroup ="moreInof" runat ="server" ErrorMessage ="error form textbox2" ></ asp:RequiredFieldValidator >
< asp:Button ID ="Button2" ValidationGroup ="moreInof" runat ="server" Text ="Button2" />
这样就实现了你点击Button只引发对特定button的验证而不会影响其他的button
< asp:RequiredFieldValidator ID ="RequiredFieldValidator1" ControlToValidate ="TextBox1" ValidationGroup ="basicInfo" runat ="server" ErrorMessage ="error form textbox1" ></ asp:RequiredFieldValidator >
< asp:Button ID ="Button1" ValidationGroup ="basicInfo" runat ="server" Text ="Button1" />
< asp:TextBox ID ="TextBox2" runat ="server" ></ asp:TextBox >
< asp:RequiredFieldValidator ID ="RequiredFieldValidator2" ControlToValidate ="TextBox2" ValidationGroup ="moreInof" runat ="server" ErrorMessage ="error form textbox2" ></ asp:RequiredFieldValidator >
< asp:Button ID ="Button2" ValidationGroup ="moreInof" runat ="server" Text ="Button2" />
总结:使用验证组可以将页面上的验证控件归为一组。可以对每个验证组执行验证,该验证与同一页的其他验证组无关。
将要分组的所有控件的 ValidationGroup 属性设置为同一个名称(字符串)即可创建验证组。可以为验证组分配任何名称,但必须对该组的所有成员使用相同的名称。