版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四篇ASP.NET 网络编程,东鹏电子信息有限公司,2,内容,第 11 章 用户控件和自定义控件 第 12 章 ASP.NET 的皮肤、主题和母版页 第 13 章 ASP.NET 内置对象,应用程序配置和缓存 第 14 章 ASP.NET XML 和 Web Service,3,第 11 章 用户控件和自定义控件,主讲:Jayce_Zou,4,本章内容 主讲:Jayce_Zou,用户控件 自定义控件,5,什么是用户控件 主讲:Jayce_Zou,在 ASP 编程中,开发人员经常使用 Include 方式包含其他文件从而简化编程过程。而在 ASP.NET 中, 控件能够提高应用程序中代码的复用
2、性,不仅 ASP.NET 提供了服务器控件,ASP.NET 还支持用户自定义控件,从而提高了代码的复用性。 用户控件使开发人员能够根据应用程序的需求,方便的定义和编写控件。 用户控件的后缀名为.ascx, 当用户访问页面时,用户控件是不能被用户直接访问的。 注意:虽然.ascx 文件会阻止用户的直接访问,但是一些常用的下载工具还是能够下载.ascx 文件。,6,编写一个简单的控件 主讲:Jayce_Zou,用户控件创建完毕后,会生成一个.ascx 页面。 .ascx 页面结构同.aspx 页面基本没有什么区别。 用户控件中并没有“”等标记,因为.ascx 页面作为控件被引用到其他页面,引用的页
3、面(如.aspx 页面)其中已经包含等标记。而如果控件中使用这样的标记,可能会造成页面布局 混乱。,7,示例代码 主讲:Jayce_Zou, 用户登录 用户名 : 密码: 还没有注册? ,8,用户控件的引用 主讲:Jayce_Zou,引用用户控件,示例代码如下所示: 在这段代码中,属性的功能如下所示: TagPrefix:定义控件位置的命名控件。 TagName:指向所用的控件的名字。 Src:用户控件的文件路径,可以为相对路径或绝对路径 使用用户控件代码如下所示: ,9,将 Web 窗体转换成用户控件 主讲:Jayce_Zou,将代码隐藏 ASP.NET 网页转换为用户控件 重命名 .asp
4、x 文件,使其文件扩展名为 .ascx。 根据代码隐藏文件使用的编程语言,重命名代码隐藏文件使其文件扩展名为 .ascx.vb 或 .ascx.cs。 打开代码隐藏文件并将该文件继承的类从 Page 更改为 UserControl。 在 .aspx 文件中,执行以下操作: 从该页面中移除 html、 body 和 form 元素。 将 Page 指令更改为 Control 指令。 移除 Control 指令中除 Language、 AutoEventWireup(如果存在)、 CodeFile 和 Inherits 之外的所有属性。 在 Control 指令中,将 CodeFile 属性更改为
5、指向重命名的代码隐藏文件。,10,自定义控件 主讲:Jayce_Zou,自定义控件与用户控件不同,自定义控件需要定义一个直接或间接从Control 类派生的类,并重写Render 方法。 实现自定义控件,必须创建一个自定义控件,自定义控件将会编译成 DLL 文件。创建自定义控件如图 :,11,主讲:Jayce_Zou,自定义控件创建完成后,会自动生成一个类,并在类中生成相应的方法,示例代码如下所示 : using System.Web.UI.WebControls; /使用 UI 命名空间以便继承 namespace ServerControl1 DefaultProperty(Text) /
6、声明属性 ToolboxData()/设置控件格式 public class ServerControl1 : WebControl Bindable(true) /设置是否支持绑定 Category(Appearance) /设置类别 DefaultValue() /设置默认值 Localizable(true) /设置是否支持本地化操作,12,主讲:Jayce_Zou,public string Text /定义 Text 属性 get /获取属性 String s = (String)ViewStateText; /获取属性的值 return (s = null) ? + this.ID
7、 + : s);/返回默认的属性的值 set /设置属性 ViewStateText = value; protected override void RenderContents(HtmlTextWriter output) /页面呈现 output.Write(Text); ,13,主讲:Jayce_Zou,需要呈现给 HTML 页面输出时,只需要重写 Render 方法 即可,示例代码如下所示: protected override void RenderContents(HtmlTextWriter output) output.Write(定义的 Text 属性的值为: + Text
8、); /输出为页面呈现 声明自定义控件,示例代码如下所示 : ,14,主讲:Jayce_Zou,自定义控件的属性描述的含义: Bindable:是否用于绑定。 Category:属性或事件显示在一个设置为“按分类顺序”的模式,如果不指定,则会显示在杂项中。 DefaultValue:指定属性的默认值。 Localizable:指定属性是否本地化。 编辑相应属性,在属性配置中就能够做相应的配置。,15,用户控件和自定义控件的异同 主讲:Jayce_Zou,用户控件和自定义控件区别: 使用率:如果开发的应用程序只是需要小范围的使用,则可以考虑用户控件,而如果开发的自定义控件能够在大部分的应用程序中
9、被应用,则可以考虑自定义控件。 创建技术:用户控件和自定义控件的创建技术是不相同的,用户控件是以.ascx 形式声明并创建的,开发过程也比较简单,并且有设计器提供设计支持,而自定义控件是从 System.Web.UI.Control 派生而来的,开发过程稍微复杂,也没有设计器提供设计支持。 生成方式:用户控件和自定义控件生成的方式不同,用户控件是以.ascx 的形式呈现,而自定义控件是以 DLL 的形式呈现,通过添加引用,自定义控件能够在【工具箱】中显式,能够像服务器控件一样拖动到页面,并且能够通过编程开发增加自定义属性。而用户控件无法在工具箱显示,也不能够像自定义控件那样增加自定义属性。,16,复合自定义控件 主讲:Jayce_Zou,编写复合 自定义控件有以下几种方式: 创建用户控件,并使用用户控件封装的用户界面实现复合控件。 开发一个编译控件,封装一个按钮控件和文本框控件,通过重写 Render 方法呈现。 从现有的控件中派生出新控件。 从基本控件类之一派生来创建自定义控件。,17,小结 主讲:Jayce_Zou,本章在服务器控件的基础上,着重讲
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 航空保安排水沟施工合同
- 课程设计声光控led灯
- 网络直播节目制作团队聘用协议
- 专业挖掘机租赁协议
- 租赁车辆合作协议
- 课程设计优化的必要性
- 农业生产小车司机招聘协议
- 药品器材防伪识别指南
- 2024年专用:房地产价格保密合同
- 矿山环境保护宣传招投标
- 2023上半年四川公务员考试申论试题(省市卷)
- 2024年度专业会务组织服务协议书版
- 函数的图象及变换省公开课获奖课件说课比赛一等奖课件
- 2020-2021学年河南省洛阳市高一上学期期中考试化学试题
- 四年级上册语文第六单元任务群教学设计
- 《高血压科普知识》课件
- 《建筑工程设计文件编制深度规定》(2022年版)
- 心理咨询中知情同意的伦理困境与解决途径
- 山地光伏除草施工方案
- 2024-2025学年苏教版小学四年级上学期期中数学试卷及解答参考
- 动物园主题认识数字1-5幼儿教育教学
评论
0/150
提交评论