让UserControl可以被验证

在web开发中,我们通常会将重复使用的代码分装成UserControl,方便之后reuse,例如DateTime控件、HtmlEditor等。

MS为asp.net 提供了一种简单的验证机制。本文要说的重点就是讲这种验证用在用户控件中。

 

要让用户控件可以被验证,只需要为控件的类添加一个特性:[ValidationProperty("SelectID")],例如:

    [ValidationProperty("SelectID")]public partial class TextBoxAutoComplete : System.Web.UI.UserControl
{#region 属性

/// <summary>/// 从AutoComplete中选择的ID/// </summary>        public string SelectID
{get
{return this.AutoComplete_Hidden.Value;
}set
{this.AutoComplete_Hidden.Value = value;
}
}

#endregion

#region 页面加载

protected void Page_Load(object sender, EventArgs e)
{

}

#endregion
}

这样虽然可以验证,但是,你会发现每次都会回发到服务器端进行验证,使用Page.IsValid,很不方便!貌似是因为不支持Client Script的验证,那么怎样才可以在客户端完成验证呢?

答案便是需要在客户端注册一个隐藏域,ID与控件的ClientID相同,同时需要在客户端更新后用脚本更新这个字段的值。

    [ValidationProperty("SelectID")]public partial class TextBoxAutoComplete : System.Web.UI.UserControl
{#region 属性

/// <summary>/// 从AutoComplete中选择的ID/// </summary>        public string SelectID
{get
{return this.AutoComplete_Hidden.Value;
}set
{this.AutoComplete_Hidden.Value = value;
}
}

#endregion

#region 页面加载

protected void Page_Load(object sender, EventArgs e)
{Page.ClientScript.RegisterHiddenField(this.ClientID, this.SelectID);  //注意此句代码,同时需要向客户端添加事件,此处略过
}

#endregion
}

以上的内容便可以完成客户端验证了。

如果认为此文对您有帮助,别忘了支持一下哦!

作者:齐飞

来源:http://youring2.cnblogs.com/

声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

转载:http://www.cnblogs.com/youring2/archive/2012/03/27/2419443.html

时间: 2024-09-20 00:18:34

让UserControl可以被验证的相关文章

使用自定义验证组件库扩展 Windows 窗体

window 摘要:数据验证是确保正常的数据捕获以及后续处理和报告的关键步骤.本文介绍了 Windows 窗体固有的程序验证基础结构,并以此为基础开发了用于提供更高效验证功能的自定义验证组件库,该验证功能与使用 ASP.NET 的验证控件相似. 下载 winforms03162004_sample.msi 示例文件. 本页内容 引言 Windows 窗体验证的主要功能 程序验证与声明性验证 建立设计时支持 模仿是最真诚的恭维 必需字段验证程序简介 BaseValidator:分治法 一个放便士,

ASP.NET 高级编程基础之验证控件介绍

目录 1. 验证控件简介 2. 验证控件的使用方法 3. 小结 -------------------------------------------------------------------------------- 1. 验证控件简介 顾名思义,验证控件就是校验用户输入数据正确性的控件,如用户在文本框中输入数据后,便显示一条提示信息,表明了校验的数据是不合法的.验证过程既可以在服务器上执行,也可以在客户机上执行,在客户端运行的校验代码是数据提交之前被执行的,因此可以提高程序的性能.AS

Silverlight实例教程 - Validation数据验证基础属性和事件

Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础属性和事件 Silverlight实例教程 - Validation数据验证DataAnnotation机制和调试技巧 Silverlight实例教程 - Validation客户端同步数据验证 Silverlight实例教程 - Validation服务器端异步数据验证 Silverlight实例

js获取UserControl内容为拼html时提供方便_javascript技巧

今天看了老赵的文章可是怎么都调试不通过. 复制代码 代码如下: [AjaxPro.AjaxMethod] public string gethtml() { UcViewHelper<UserControl> viewManager = new UcViewHelper<UserControl>(); UserControl control = viewManager.LoadViewControl("~/uc/giftoutmodel.ascx"); stri

Silverlight的数据验证Input validation

传统的验证方法 开发应用程序最基本的的工作内容是进行数据验证.Silverlight的应用程序也不例外.Silverlight应用一定程度上类似于Windows Form应用.其数据验证可以用Winform传统的方法,如在准备提交时的代码中逐项检查数据的合法性.例如一个窗体中有若干输入框,和一个提交按钮.输入完毕后,点击提交按钮.我们可以在提交按钮Click事件处理程序中检查每个输入框的输入合法性.如果不合法,或者用一个弹出窗口提示用户,或者用别的一些方式(这些方式很多的,完全取决于UI设计),

PHP 验证登陆类分享

 本文给大家介绍的是用php实现的用户登录与验证的一段代码,没有把登录和数据库查询分开,有需要的朋友,可以参考学习下     简单的登录类,没有把登录和数据库查询分开   代码如下: /* * 例子 * * $Auth=new Auth(); * $Auth->login("123@123.com","123"); * $Auth->logout(); * echo $r->init(); * **/   验证登陆类   代码如下: <?ph

php接口数据加密、解密、验证签名

 代码很简单,这里就不多废话了,直接奉上代码   代码如下: <?php //header('Content-Type: text/xml; charset=utf-8'); include_once(dirname(dirname(__FILE__)).DIRECTORY_SEPARATOR.'phpsec'.DIRECTORY_SEPARATOR.'Math'.DIRECTORY_SEPARATOR.'BigInteger.php'); include_once(dirname(dirnam

PhalGo-参数验证过滤

PhalGo-参数验证过滤 phalGo 的参数过滤使用 beego 提供的独立模块 validation 进行封装改造 , 从而达到可以和 request 一同使用的效果 , 通过统一的报错机制对不匹配的参数进行处理. 连贯操作 当我们自己进行参数验证时,我们需要先获取参数,在判断参数是否存在,判断长度是否在制定范围内,在判断是否符合我们所需要的格式,尤其在Go语言需要花费大量的代码量来实现这一系列功能,但是在PhalGo中进行了良好的封装,对一个参数的基本处理都能在一行内完成,如下所示: n

html-这个验证跳转总是失败,实在不知道错在哪,可以帮我看看吗?

问题描述 这个验证跳转总是失败,实在不知道错在哪,可以帮我看看吗? 主页登陆<br> function check() {<br> if (document.forms(0).name.value == "123" && document.forms(0).pw.value == "123456") {<br> window.location = "body.html";<br> }