控件(六)——验证控件
验证控件对我们来说,还是比较重要的。虽然它并不高深,但是它确是我们经常用到的。
验证控件的应用涉及到的知识:
1、可以被定义外观;
2、验证程序的显示方式,可以是静态也可以是动态;
3、分组显示错误信息;
4、自定义服务端验证;
5、自定义客户端验证;
6、正则表达式。
下面我们来看个注册信息的例子,这里就不做过多介绍了,直接给出界面,一看便知:
RequiredFieldValidator控件:用户名、密码、确认密码的输入使用的该控件。那用户名来说,最主要的是设置该验证控件的ControlTovalidate属性为相应文本框的ID。其他完全类似。
CompareValidator控件:判断两次密码输入的是否相同。重要的是在将该控件的ControlToCopmare属性和ControlValidate属性分别设置为要验证的文本框的ID,对于其他一些功能,大家可以自己探索。
RegularExpressionValidator控件:该控件用于判断邮件地址是否正确输入。在ControlToValidate属性中输入要验证的控件ID(如下图),然后在ValidationExpression(用于确定有效性的正则表达式)属性中选择适当的类型,它会自动生成正则表达式(具体的正则表达,另附博文介绍)。
RangeValidator控件:验证输入的数字的范围是否符合要求。ControlToValidate属性中输入验证文本框的ID,在MaximumValue属性(所验证的控件的最大值)中输入200,MinimumValue属性(所验证控件的最小值)中输入100。
ValidationSummary控件:该控件就像是总结一样,提交后汇总下所有的错误。
CustomValidator控件:实现服务器和客户端的自定义验证。同样,需要在ControlToValidate属性中输入需要验证的文本框的ID。
后台代码:
public partial class kongjian4 : System.Web.UI.Page { /// <summary> /// 验证控件 /// 1、他可以把被定义外观 /// 2、验证程序的显示方式,是静态还是动态(注意第一个验证控件的两种) /// 3、分组显示错误信息 /// 4、自定义服务端验证 /// 5、自定义客户端验证 /// 6、正则表达式 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { } protected void txtvalue(object source, ServerValidateEventArgs args) { args.IsValid = (args.Value == "服务器"); } protected void Button1_Click(object sender, EventArgs e) { if (IsValid) { Label1.Text = "恭喜你,全部通过!"; } else { Label1.Text = "哈哈,有错误哦"; } } }
这里,我们用到一个脚本:
<head runat="server"> <title>无标题页</title> <script type="text/jscript"> function clientv(s, e) { if (e.value == "客户端") { e.isValid = true; } else { e.isValid = false; } } </script> </head>
直接点击提交,效果演示:
其他控件的效果,大家自己尝试。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构