aspnet五篇五自定义控件

上传人:gp****x 文档编号:243430735 上传时间:2024-09-23 格式:PPT 页数:14 大小:155KB
返回 下载 相关 举报
aspnet五篇五自定义控件_第1页
第1页 / 共14页
aspnet五篇五自定义控件_第2页
第2页 / 共14页
aspnet五篇五自定义控件_第3页
第3页 / 共14页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,控件原理,-,自定义控件,硬座火车,1,内容介绍,概述,状态,数据回发,Change事件,单击事件,2,概述,自定义控件和普通的服务器控件一样,间接或直接继承自System.Web.UI.Control类.不同的是普通的服务器控件是.net framework提供的,自定义控件是你编写的,public class MyTextBox :,TextBox,3,状态,视图状态是 页框架用于在往返过程之间保留页和控件值,再次处理请求时获取上次值的方法,主要有两种用途:1.用于比对数据是否发生了变化;2.使用上次的处理结果,减少处理次数,控件状态和视图状态类似,只是它不能被关闭.当页面或者某个控件禁用了视图状态功能时,控件状态仍可照常使用,可以存储于客户端页面的隐藏域中,也可以存储在服务端,4,示例,5,数据回发,实现接口:,IPostBackDataHandler,postDataKey是页面标签的name,根据它来给对应的控件赋值。,为什么控件的ID需要与页面标签的name一致?,6,数据回发,Page类中处理回发数据方法,private void ProcessPostData(NameValueCollection postData, bool fBeforeLoad),.,Control control2 =,this.FindControl(str2);,if (control2 != null),IPostBackDataHandler handler2 =,.,;,if (handler2 = null),handler2 = control2 as IPostBackDataHandler;,if (handler2.LoadPostData(str2, this._requestValueCollection),this._changedPostDataConsumers.Add(control2);,7,Change事件,实现接口:,IPostBackDataHandler,8,Change事件,Page类中处理回发数据方法,private void ProcessPostData(NameValueCollection postData, bool fBeforeLoad),.,Control control2 =,this.FindControl(str2);,if (control2 != null),IPostBackDataHandler handler2 =,.,;,if (handler2 = null),handler2 = control2 as IPostBackDataHandler;,if (handler2.LoadPostData(str2, this._requestValueCollection),this._changedPostDataConsumers.Add(control2);,9,控件状态,使用控件状态需要重写下面三个方法,10,单击事件,实现接口:IPostBackEventHandler,11,事件映射,private void RaisePostBackEvent(NameValueCollection postData),if (this._registeredControlThatRequireRaiseEvent != null),this.RaisePostBackEvent(this._registeredControlThatRequireRaiseEvent, null);,else,string str = postData_EVENTTARGET;,Control control = null;,if (!string.IsNullOrEmpty(str),control = this.FindControl(str);,if (control != null) & (control.PostBackEventHandler != null),string eventArgument = postData_EVENTARGUMENT;,this.RaisePostBackEvent(control.PostBackEventHandler, eventArgument);,。,Page类中触发回发事件的方法,12,问题,事件不能触发,标签name与控件id不一致,IPostBackDataHandler和IPostBackEventHandler冲突,事件触发错误,有多个提交按钮,不管点击的是哪一个,触发的总是最后一个控件的事件,13,谢谢大家,14,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!