`
hulunberbus
  • 浏览: 857361 次
文章分类
社区版块
存档分类
最新评论

在WEB自定义控件中实现事件及自动保存值

 
阅读更多

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Collections.Specialized;
namespace MyWebControls
{
/// <summary>
/// 创建一个派生于WEBCONTROL的类
/// 实现一个公有构造函数,它将调用基类构造函数来指定服务器控件应该输出一个input元素
/// 重写AddAttributesToRender方法,调用该方法是为了允许派生类为根元素input 添加属性
/// 我们将添加一个name属性,它的值由uniqueID特性派生,asp.net使用这个特性来存储每个控件的唯一ID。
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:MyTextBox runat=server></{0}:MyTextBox>")]
public class MyTextBox : System.Web.UI.WebControls.WebControl,IPostBackDataHandler
{
public MyTextBox():base("input")
{
}

//使用ViewState对象将值保存起来,此对象的有效范围为当前页面都可以存取.最终保存在客户端。每次都会进行回送
//ViewState是StateBag类,可存放的数据类型有 int bool string 或数组 及其他的基本数据类型,及arraylist,hashtable,
//或具有类型转换器的类型,可以串行的类型
public string Text
{
get
{
if(ViewState["value"]==null)
{
return String.Empty;
}
return (string)ViewState["value"];
}
set
{
ViewState["value"]=value;
}
}

protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender (writer);
writer.AddAttribute(HtmlTextWriterAttribute.Name,UniqueID);
writer.AddAttribute("type","text");
if(Text!=null)
writer.AddAttribute("value",Text);
}

#region IPostBackDataHandler 成员

//为了访问回送数据,服务器控件要实现IPostBackDataHandler接口,有二个方法
public void RaisePostDataChangedEvent()
{
//如果用户回送的数据发生改变则,发生事件
if(OnMyTextChnaged!=null)
{
OnMyTextChnaged(this,EventArgs.Empty);
}
}

//当有回送发生并且某个控件有回送数据时,此方法就会被调用,该方法为页面上所有需要访问回送数据的控件依次调用。
//此方法如果返回真,那么在为页面上所有其他带有回送数据的控件调用过LoadPostData方法后,RaisePostDataChangedMethod将被调用。
//如果返回假,则不调用.由于在此方法里引发事件会引起不可预知的结果,所以一定要在RaisePostDataChangedEvent里引发事件。
//
public bool LoadPostData(string postDataKey, NameValueCollection postCollection)
{
bool raiseEvent=false; //要不要触发事件的标志
//如果上一次的文本与回送的文本不一样
if(Text!=postCollection[postDataKey])
{
raiseEvent=true;
Text=postCollection[postDataKey];//将回送的值保存
}
return raiseEvent;
}

#endregion

//注册一个事件,文本改变事件
public event EventHandler OnMyTextChnaged;


}
}

分享到:
评论

相关推荐

    Asp.Net 自定义验证码控件

    单击可自动刷新的自定义验证码控件。 验证码原理: 由随机的字符串生成图片, 图片加入干扰,防止暴力破解,人可以识别, 生成图片的同时,将随机字符串保存, 判断人工输入和保存的字符串的一致性。

    NTKO附件管理控件

    ★ 支持提示文件修改 如果下载到本地的文件被修改,控件自动提示并可以保存回服务器。 ★ 支持编辑,打开,打印等多种操作方式L 可对附件进行编辑,打开,打印,打开文件夹,查看属性等多种操作。 4、 编程支持 ...

    楚琳免费Web打印控件

    1、支持最终用户在线设计和编辑报表,只需单击“保存”按钮就可以自动把报表上传至服务器,无需FTP等。 2、支持直接打印、支持套打、支持自定义纸张大小。 3、报表功能强大,报表设计采用FastReport,可以和水晶报表...

    庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术

    第15章 自定义控件设计模式下编程汇总 534 15.1 .net框架对设计时支持 534 15.2 设计时元数据支持 535 15.3 复杂属性序列化 539 15.4 类型转换器 539 15.5 属性编辑器 540 15.6 设计模式可用基类介绍 541 ...

    office 电子签名控件

    览器窗口中直接编辑Word文档并保存到Web服务器上。实现文档和数据库的统一管理。 控件同时支持痕迹保留,手写签名,电子印章等办公自动化系统必备的功能。 控件采用标准HTTP协议,支持任意后台Web服务器,任意后台...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part1

    第15章 自定义控件设计模式下编程汇总 534 15.1 .net框架对设计时支持 534 15.2 设计时元数据支持 535 15.3 复杂属性序列化 539 15.4 类型转换器 539 15.5 属性编辑器 540 15.6 设计模式可用基类介绍 541 ...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part2

    第15章 自定义控件设计模式下编程汇总 534 15.1 .net框架对设计时支持 534 15.2 设计时元数据支持 535 15.3 复杂属性序列化 539 15.4 类型转换器 539 15.5 属性编辑器 540 15.6 设计模式可用基类介绍 541 ...

    asp.net专家疑难解答200问源码

    83.如何在Calendar Web控件中控制个别日的内容及显示 84.如何在Calendar Web控件中控制用户日期选定 86.如何使用XML控件显示XML文件和进行XSLT转换 87.如何使用AdRotator Web控件制作广告发布程序-示例1 87.如何...

    庖丁解牛纵向切入ASP.NET 3.5控件和组件开发技术.pdf

    第15章 自定义控件设计模式下编程汇总534 15.1 .net框架对设计时支持534 15.2 设计时元数据支持535 15.3 复杂属性序列化539 15.4 类型转换器539 15.5 属性编辑器540 15.6 设计模式可用基类介绍541 15.7 设计...

    ASP.NET 控件的使用

    9.1.3 在Web配置文件中保存连接字符串 258 9.1.4 对连接字符串加密 260 9.2 执行数据库命令 261 9.2.1 执行内联SQL语句 261 9.2.2 执行存储过程 263 9.2.3 过滤数据库行 264 9.2.4 改变数据源模型 266 9.2.5 处理SQL...

    ASP.NET2.0服务器控件之自定义状态管理

    在前面的系列文章中,我们曾经介绍了视图状态和控件状态的基本概念和典型应用,从中可以发现,视图状态和控件状态对于自定义服务器控件实现的重要性。本文将继续这一主题,重点介绍实现视图状态和控件状态自定义管理...

    asp.net专家疑难解答200问

    如何在Calendar Web控件中控制个别日的内容及显示 84.如何在Calendar Web控件中控制用户日期选定 86.如何使用XML控件显示XML文件和进行XSLT转换 87.如何使用AdRotator Web控件制作广告发布程序-示例1 ...

    ASP.NET的网页代码模型及生命周期

    在页面控件中,如果有多个自定义控件使用多个不同的控件来显示不同的数据结构,为了让这些页面控件能够在在页面上协调的工作,则需要使用控件状态来保护控件,同时,控件状态是不能被关闭的。同样,控件状态也有它的...

    ASP.NET.4揭秘

    9.1.3 在web配置文件中保存连接字符串293 9.1.4 对连接字符串加密294 9.2 执行数据库命令296 9.2.1 执行内联sql语句296 9.2.2 执行存储过程298 9.2.3 过滤数据库行300 9.2.4 改变数据源模型302 9.2.5 处理sql命令...

    NTKO文档在线编辑控件4.0.1.2

    NTKO OFFICE文档控件能够在浏览器窗口中直接编辑Word,Excel,Wps等Office文档并保存到任意Web服务器。实现文档和电子表格的统一管理。同时支持强制痕迹保留,手写签名,电子印章,版本控制,附件上传等办公自动化系统...

    ASP.NET4高级程序设计(第4版) 3/3

    书中还深入讲述了其他ASP.NET图书遗漏的高级主题,如自定义控件的创建、图像处理、加密等。此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软...

    asp.net知识库

    在 SQL Server 2005 中使用表值函数来实现空间数据库 SQL Server 2005的30个最重要特点 同时安装sql2000和sql2005的经验 类如何与界面绑定 在Asp.net中如何用SQLDMO来获取SQL Server中的对象信息 使用Relations建立...

    Excel VBA实用技巧大全 附书源码

    01040设置保存自动恢复文件的时间间隔和保存位置 01041停止屏幕刷新 01042使事件无效 01043使取消键无效 01044不显示警告信息对话框 01045设置使用的打印机 01046安装加载宏 01047利用GetOpenFilename方法获取文件名...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    书中还深入讲述了其他ASP.NET图书遗漏的高级主题,如自定义控件的创建、图像处理、加密等。此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软...

Global site tag (gtag.js) - Google Analytics