ASP.Net数据验证中的验证组
2006-11-21 10:32
218 查看
数据验证是为了防止用户录入错误数据或者漏掉必须填写的数据而使得服务器出现不必要的错误,ASP.NET有验证控件方便我们进行数据验证,但是有时会出现这样或者那样的问题,我今天就遇到了一个,把验证控件说一下吧
<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: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: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" />
这样用户如果在不输入信息的情况下直接点击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
总结:使用验证组可以将页面上的验证控件归为一组。可以对每个验证组执行验证,该验证与同一页的其他验证组无关。
将要分组的所有控件的 ValidationGroup 属性设置为同一个名称(字符串)即可创建验证组。可以为验证组分配任何名称,但必须对该组的所有成员使用相同的名称。
<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: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: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" />
这样用户如果在不输入信息的情况下直接点击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
总结:使用验证组可以将页面上的验证控件归为一组。可以对每个验证组执行验证,该验证与同一页的其他验证组无关。
将要分组的所有控件的 ValidationGroup 属性设置为同一个名称(字符串)即可创建验证组。可以为验证组分配任何名称,但必须对该组的所有成员使用相同的名称。
相关文章推荐
- 【ASP.NET基础】客户端、服务器端的数据验证 + CKEditer
- Asp.net HTTP提交xml数据,带身份验证
- 在asp.net中基于Ajax的数据验证
- [转]ASP.NET MVC 入门8、ModelState与数据验证
- asp.net无法验证数据
- ASP.NET MVC结合jQuery插件进行数据验证
- ASP.NET MVC 2中的数据验证
- 数据注解和验证 – ASP.NET MVC 4 系列
- 【转】ASP.NET MVC 数据验证及相关内容
- 第10章 ASP.NET数据验证
- ASP.NET数据验证控件详解
- asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
- ASP .NET 不同阶段的数据验证判断和提示
- ASP.NET MVC- 数据验证机制
- asp.net数据验证控件
- asp.net数据验证控件
- 在Asp.net 中验证数据
- Asp.net MVC 示例项目"Suteki.Shop"分析之---数据验证
- 【ASP.NET】ASP.NET之数据验证控件
- Asp.net+Extjs实现对GridPanel分页、行内编辑、增加、删除、弹出新窗体增加、数据验证、编辑指定列、数据格式转换等功能