《精编》创建服务器控件

上传人:tang****xu5 文档编号:134242459 上传时间:2020-06-03 格式:PPT 页数:47 大小:1.05MB
返回 下载 相关 举报
《精编》创建服务器控件_第1页
第1页 / 共47页
《精编》创建服务器控件_第2页
第2页 / 共47页
《精编》创建服务器控件_第3页
第3页 / 共47页
《精编》创建服务器控件_第4页
第4页 / 共47页
《精编》创建服务器控件_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《《精编》创建服务器控件》由会员分享,可在线阅读,更多相关《《精编》创建服务器控件(47页珍藏版)》请在金锄头文库上搜索。

1、创建服务器控件 议程 回顾架构创建服务器控件控件属性触发事件使用客户端脚本重载Render组合控件 ASP NET中的控件 什么是ASP NET控件 服务器端WebUI组件属性 方法 事件演绎成标注 HTML XML script etc 处理posted数据和用户行为封装逻辑多种演绎选项一个控件是一个 NET类型 基类是System Web UI ControlSystem Web UI WebControls WebControl 两种创建控件的方法 用户控件 页面作为控件 容易创建 是存作 ascx的页面支持部分页面缓存用于单个应用缺少设计时支持定制控件技术要求高一些支持多个应用 GAC

2、 设计时支持非常强大 基于Tag的存储 运行时解析Tags创建控件实例设置属性初始值 firstitemseconditemthirditem 运行时使用控件 控件是代码中的 NET对象在页面事件中处理控件Page Load Button1 Click 等等 voidPage Load objectsend EventArgse l1 Items Add fourthitem l1 ForeColor Color Blue 页面 控件处理第一次载入 Init Load PreRender SaveViewState Render Dispose 实例化每个控件 设置为初始状态 加入控件树 运行

3、用户代码 测试 IsPostBack条件来数据绑定到第一批值 CreateChildControls 确保控件准备好被演绎 控件存储状态值 如果与初始值不同 每个控件将自身演绎到响应中 释放页面和所有控件 页面 控件处理Postback Init Load PreRender SaveViewState Render Dispose 从ViewState载入控件的上一次状态 Posted数据 HTTP表单中 传递到相应控件 按照在树中的次序触发控件事件 除了导致Post的控件 它最后触发 LoadViewState Postbackdata Postbackevents 控件属性 属性处理 控

4、件类型属性作为控件的特性出现属性可以 类型成员存储在ViewState中 EventLog控件 触发事件 SimpleLinkButton 往SimpleLabel控件加入事件将流览器客户事件映射到服务器事件用Page GetPostBackClientHyperLink 产生Postback实现IPostBackEventHandler ASP NET服务器应用 触发服务器端事件 将流览器客户事件映射到服务器事件 Click SimpleLinkButton 客户端脚本 HoverLabel控件 增加客户端hover和cursor效果使用Page RegisterStartupScript来

5、演绎加入的脚本设置一个特定的版本AssemblyVersion特性 未在演示中 将脚本放在一个共享的地方 aspnet client assembly version script js 客户端脚本支持 提供EnableClientScript属性使用BrowserCapabilities来确定流览器是否支持脚本Page Request Browser EcmaScriptVersion在OnPreRender时作此检验因此检验不在设计模式时进行 HoverLabel 重载Render ProgressBar控件 演绎成HTML表从WebControl继承 免费 获取许多实现VS NET中的设

6、计器支持重载Render 重载Render OverrideRenderprotectedoverridevoidRender writer Write Text 或者只是内容的演绎 protectedoverridevoidRenderContents foreach ListItemliinItems RenderListItem output li 演绎属性 从WebControl继承的控件在开始标记中演绎风格属性基本的uplevel downlevel风格支持也可以增加新的属性protectedoverridevoidAddAttributesToRender addanotherat

7、tibuteforthebegintagwriter AddAttribute type square base AddAttributesToRender writer ProgressBar 组合控件 组合控件 组合控件是包含其它控件的控件一起解决常见问题组合控件必须为命名空间实现INamingContainer重载CreateChildControls 来根据需要创建子控件子控件管理它们自己的视图状态 CreateChildControls 确保控件树已准备好PreRenderFindControl在CreateChildControls创建子控件 设置初始属性值对每个请求给予相同的初始

8、值在加入控件树之前赋初始值加入Controls集合连接事件处理函数 CreateChildControls protectedoverridesvoidCreateChildControls TextBoxtext1 newTextBox text1 ID text1 text1 Text Text RequiredFieldValidatorreq1 newRequiredFieldValidator req1 ControlToValidate text1 req1 Text Controls Add text1 Controls Add newLiteralControl Require

9、dTextField控件 在VS Net中开发服务端控件 建立一个Web控件库项目编辑AssemblyInfo类型VersionTagPrefix加入一个Web应用来测试控件Solution AddNew WebApplication加到ToolBox中CustomizeToolBox Browse 使用RequiredTextField控件 总结 控件提供了抽象重用ASP NET提供了丰富的控件框架在Posts之间保持状态处理Post事件从脚本处获得客户端处理能力从现有的ASP NET控件继承 使用模板 模板化控件 定制控件外观实现ITemplate模板初始化由Parser进行ITempla

10、te InstantiateIn控件通常会实现INamingContainer载入模板缺省模板 控件内部所有内联模板 控件内定义动态载入 使用模板 ForumRepeater Repeater新的属性内部数据绑定模板实现定制的ItemTemplate可重载初始值 使用模板 控件Skinning Skinning控件 不包含UI Markup由Skin控制控件标签 XML HTML 等等 控件UI 标签布局 一个skin文件是一个 ascx文件动态载入可以有代码 SkinningControls 设计时支持 创建一个控件设计器 从System Web UI Design ControlDesig

11、ner继承与DesignerAttribute关联 Designer typeof AspConn ControlsCS2 ContentRotatorDesigner publicclassContentRotator WebControl 设计时演绎 设计时必须用HTML表示 不管在运行时如何演绎 缺省情形下用Render 的结果重载GetDesignTimeHtml GetEmptyDesignTimeHtml 当Render返回空字符串时GetErrorDesignTimeHtml 当无法载入控件时 设计时支持 FiringTheClientEvent Createscriptrefe

12、renceusingPage GetPostBackClientHyperlink ClientImplementation doPostBack ctl protectedoverridevoidRender writer stringeventRef Page GetPostBackClientHyperlink this writer AddAttribute HtmlTextWriterAttribute Href eventRef writer RenderBeginTag HtmlTextWriterTag A RenderContents writer writer Render

13、EndTag ProcessingTheServerEvent ControlmustimplementIPostBackEventHandlerPagecallscontrol sRaisePostBackEvent method publicclassSimpleLinkButton SimpleLabel IPostBackEventHandler voidRaisePostBackEvent stringeventArg OnClick EventArgs Empty EventImplementation Allowsusercodetohookevent publiceventEventHandlerClick protectedvirtualvoidOnClick EventArgse if Click null Click this e

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号