创建服务器控件.ppt

上传人:知**** 文档编号:91005742 上传时间:2023-05-20 格式:PPT 页数:46 大小:1.98MB
返回 下载 相关 举报
创建服务器控件.ppt_第1页
第1页 / 共46页
创建服务器控件.ppt_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《创建服务器控件.ppt》由会员分享,可在线阅读,更多相关《创建服务器控件.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、少壮不努力,老大徒悲伤 少壮不努力,老大徒悲伤2023/5/20创建服务器控件锲而不舍,金石可镂 锲而不舍,金石可镂议程o 回顾架构o 创建服务器控件n 控件属性n 触发事件n 使用客户端脚本n 重载Rendern 组合控件锲而不舍,金石可镂 锲而不舍,金石可镂ASP.NET 中的控件锲而不舍,金石可镂 锲而不舍,金石可镂什么是 ASP.NET 控件?o 服务器端Web UI 组件n 属性,方法,事件n 演绎成标注(HTML,XML,script,etc.)n 处理 posted 数据和用户行为n 封装逻辑n 多种演绎选项o 一个控件是一个.NET 类型,基类是n System.Web.UI.

2、Control n System.Web.UI.WebControls.WebControl锲而不舍,金石可镂 锲而不舍,金石可镂两种创建控件的方法o 用户控件(页面作为控件)n 容易创建 是存作*.ascx 的页面n 支持部分页面缓存n 用于单个应用n 缺少设计时支持o 定制控件n 技术要求高一些n 支持多个应用(GAC)n 设计时支持非常强大锲而不舍,金石可镂 锲而不舍,金石可镂基于Tag 的存储o 运行时解析Tagsn 创建控件实例n 设置属性初始值 first item first item second item second item third item third item C

3、lass to create Class to create标记作为 标记作为 服务器控件 服务器控件 命名空间引用 命名空间引用 实例 实例ID ID 对 对 l1 l1 设置 设置 liststyle liststyle 属性 属性对 对l1 l1 设置 设置 Items Items 属性 属性锲而不舍,金石可镂 锲而不舍,金石可镂运行时使用控件o 控件是代码中的.NET 对象o 在页面事件中处理控件n Page_Load,Button1_Click,等等.void Page_Load(object send,EventArgs e)void Page_Load(object send,E

4、ventArgs e)l1.Items l1.Items.Add(“fourth item”);.Add(“fourth item”);l1.ForeColor l1.ForeColor=Color.Blue;=Color.Blue;锲而不舍,金石可镂 锲而不舍,金石可镂页面/控件处理第一次载入Init InitLoad LoadPreRender PreRenderSaveViewState SaveViewStateRender RenderDispose Dispose实例化每个 实例化每个 控件 控件,设置为初始状态 设置为初始状态,加 加入控件树 入控件树运行用户代码 运行用户代码,

5、测试 测试!IsPostBack!IsPostBack 条 条件来数据绑定到第一批值 件来数据绑定到第一批值CreateChildControls()CreateChildControls()确保 确保 控件准 控件准备好被演绎 备好被演绎控件存储状态值 控件存储状态值(如果与初始值不同 如果与初始值不同)每个 每个 控件 控件 将自身演绎到响应中 将自身演绎到响应中释放 释放 页面和所有控件 页面和所有控件锲而不舍,金石可镂 锲而不舍,金石可镂页面/控件处理Post backInit InitLoad LoadPreRender PreRenderSaveViewState SaveView

6、StateRender RenderDispose Dispose从 从ViewState ViewState 载入 载入 控件的上一次状态 控件的上一次状态Posted Posted 数据 数据(HTTP(HTTP 表单中 表单中)传递到 传递到相应 相应 控件 控件按照在树中的次序触发 按照在树中的次序触发 控件事件 控件事件,除 除了导致 了导致Post Post 的 的 控件 控件.它最后触发 它最后触发.LoadViewState LoadViewStatePostback data Postback dataPostback events Postback events锲而不舍,金

7、石可镂 锲而不舍,金石可镂控件属性锲而不舍,金石可镂 锲而不舍,金石可镂属性处理o 控件类型属性n 作为控件的特性出现o 属性可以:n 类型成员n 存储在 ViewState 中AspNetForums:StyleSkin ID=Styleskin1/锲而不舍,金石可镂 锲而不舍,金石可镂EventLog 控件锲而不舍,金石可镂 锲而不舍,金石可镂触发事件锲而不舍,金石可镂 锲而不舍,金石可镂SimpleLinkButtono 往 SimpleLabel 控件加入事件o 将流览器客户事件映射到服务器事件o 用 Page.GetPostBackClientHyperLink()产生Postbac

8、ko 实现 IPostBackEventHandler锲而不舍,金石可镂 锲而不舍,金石可镂ASP.NET 服务器应用触发服务器端事件o 将流览器客户事件映射到服务器事件Click!Button1Button2Checkbox1Listbox1Button1.RaisePostBackEvent().RaisePostBackEvent()触发 触发 OnClick()OnClick()调用事件处理函数 调用事件处理函数Button1_Click()Button1_Click()注册 注册 控件以接收 控件以接收postback postback 事件通知 事件通知IPostBackEvent

9、Handler IPostBackEventHandlerHTTP HTTP 表单 表单 post post锲而不舍,金石可镂 锲而不舍,金石可镂SimpleLinkButton锲而不舍,金石可镂 锲而不舍,金石可镂客户端脚本锲而不舍,金石可镂 锲而不舍,金石可镂HoverLabel 控件o 增加客户端hover 和cursor 效果o 使用Page.RegisterStartupScript 来演绎加入的脚本o 设置一个特定的版本n AssemblyVersion 特性(未在演示中)o 将脚本放在一个共享的地方n/aspnet_client/assembly/version/script.j

10、s锲而不舍,金石可镂 锲而不舍,金石可镂客户端脚本支持o 提供 EnableClientScript 属性o 使用BrowserCapabilities 来确定流览器是否支持脚本n Page.Request.Browser.EcmaScriptVersiono 在 OnPreRender 时作此检验n 因此检验不在设计模式时进行锲而不舍,金石可镂 锲而不舍,金石可镂HoverLabel锲而不舍,金石可镂 锲而不舍,金石可镂重载Render锲而不舍,金石可镂 锲而不舍,金石可镂ProgressBar 控件o 演绎成 HTML 表o 从 WebControl 继承o“免费”获取许多实现n VS.N

11、ET 中的设计器支持o 重载Render()锲而不舍,金石可镂 锲而不舍,金石可镂重载Rendero Override Renderprotected override void Render()writer.Write(Text);o 或者只是内容的演绎:protected override void RenderContents()foreach(ListItem li in Items)RenderListItem(output,li);锲而不舍,金石可镂 锲而不舍,金石可镂演绎属性o 从 WebControl 继承的控件n 在开始标记中演绎风格属性 n 基本的uplevel/downl

12、evel 风格支持n 也可以 增加新的属性protected override void AddAttributesToRender()/add another attibute for the begin tag writer.AddAttribute(type,square);base.AddAttributesToRender(writer);锲而不舍,金石可镂 锲而不舍,金石可镂ProgressBar锲而不舍,金石可镂 锲而不舍,金石可镂组合控件锲而不舍,金石可镂 锲而不舍,金石可镂组合控件o 组合控件是n 包含其它控件的控件n 一起解决常见问题o 组合控件必须n 为命名空间实现INa

13、mingContainern 重载CreateChildControls()来根据需要创建子控件o 子控件管理它们自己的视图状态锲而不舍,金石可镂 锲而不舍,金石可镂CreateChildControlso 确保控件树已准备好n PreRender n FindControlo 在 CreateChildControlsn 创建子控件,设置初始属性值n 对每个请求给予相同的初始值n 在加入控件树之前赋初始值n 加入Controls 集合n 连接事件处理函数锲而不舍,金石可镂 锲而不舍,金石可镂RequiredTextField 控件锲而不舍,金石可镂 锲而不舍,金石可镂在VS.Net 中开发服

14、务端控件o 建立一个Web 控件库项目o 编辑AssemblyInfo 类型n Versionn TagPrefixo 加入一个Web 应用来测试控件n Solution-Add New-Web Applicationo 加到ToolBox 中n Customize ToolBox-Browse锲而不舍,金石可镂 锲而不舍,金石可镂使用RequiredTextField 控件锲而不舍,金石可镂 锲而不舍,金石可镂总结o 控件提供了n 抽象n 重用o ASP.NET 提供了丰富的控件框架n 在Posts 之间保持状态n 处理Post 事件 n 从脚本处获得客户端处理能力n 从现有的 ASP.NET 控件继承

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

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁