




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第11章 建立用户控件 用户控件,是用户根据.net已经提供的控件,组 合成各种程序需要的组合控件。这种用户控件一 次定义,然后可以用在当前网站的不同界面中, 这就方便了开发人员的操作。如一个网站中的购 物篮,购物篮包括物品、价格、数量和总价。这 些包含的内容是固定的,所以可以把购物篮做成 一个用户控件,然后在各个网页中使用。 本章就介绍如何在asp.net应用程序中开发用户控 件,如何控制用户控件的一些属性和事件。 【本章示例参考:源代码c11】 11.1 一个简单的用户控件(user controls) 用户控件与asp.net页面非常相似,用户控件就是 封装了asp.net现有控件或功能
2、的一个复合控件, 或者说是组合控件。用户控件使web页面的可维护 性增强,并且增强了可重用性。在运行时,用户 控件将被编译,并且能单独地进行缓存,而且用 户控件利用了asp.net对象模型支持,使开发人员 像访问一个普通控件一样使用用户控件。本节学 习如何创建一个完整的用户控件 11.1.1 创建用户控件 本例要创建的用户控件是一个选择日期的控件,其主要实现如下 功能: (1)一个文本框,用来显示日期。 (2)提供一个可视化的日历,当文本框获得焦点时,供用户选择 日期。 (3)用户选择日期后,日历控件消失,文本框中显示用户选择的 日期。 这个功能虽然看起来比较简单,但因为在一些财务软件中,会经
3、 常遇到财务日期,不可能每个页面都新做一个控件,所以设置为 用户控件,可以一次定义,多次使用。下面学习创建这个用户控 件的方法。 11.1.2 应用用户控件 控件设计完成后,asp.net提供了简便的应用方法。打开default.aspx页 面,切换到“设计”视图,然后拖住“calendarcontrol.ascx”文件,直 接拖放到这个设计视图中。此时可以看到生成的界面与用户控件的界面相 同,切换到“源”视图,发现在“page”行下面多了一行: 这里就是通过“register”在这个页面中注册用户控件,然后tagprefix 指明用户控件的前缀,src是用户控件所在的位置。vs2008默认生
4、成的 tagprefix以uc开头,tagname则直接使用用户控件的文件名,建议开发人 员为用户控件取具有表示意义的命名,以免难以维护。在用户控件的声明 区中,使用这样的语法来定义用户控件,这与普 通的用户控件没有什么区别。 本例页面中已经生成了这个日历用户控件,可以看到这个控件的代码如下 所示。 11.1.3 增加、处理用户控件的属性 可以在用户控件中公开属性,这样页面可以通过访问和设 置用户控件的属性,来与用户控件进行交互。下面的代码 为前面的用户控件定义一个属性“calendardate”。 public string calendardate get return textbox1.
5、text; set textbox1.text = value; 这里calendardate属性的值,其实就是该用户控件中 textbox1的值。根据用户控件的要求,当用户选择了日历 控件后,textbox1应该显示用户选择的日期,所以设置日 历控件的选择事件,这里牵扯到用户控件的事件,将在 11.1.4节介绍。 11.1.4 增加、处理用户控件的事件 一个控件真正的功能是为其定义响应用户操作的事件。本节学习为前面定 义的用户控件添加事件。当用户选择好日期后,日历控件隐藏起来,只显 示带有日期的文本框。事件代码如下所示。 protected void calendar1_selectionc
6、hanged(object sender, eventargs e) textbox1.text = calendar1.selecteddate.toshortdatestring(); calendar1.visible = false;/隐 藏日历控件 这样用户控件的属性和事件就设置完了,在default.aspx中添加一个按钮, 用来显示用户控件的值。当用户单击按钮时,在页面上显示用户控件的值, 所以需要设置按钮的单击事件代码如下所示。其中 calendarcontrol1.calendardate就是用户控件的属性。 protected void button1_click(obje
7、ct sender, eventargs e) response.write(calendarcontrol1.calendardate); 11.2 动态装载用户控件 所谓的“动态”,就是在程序运行时,当程序需要的时候才开始加载用户控件。要在一个 页面中引用用户控件,必须添加一个标记“reference”,在这个标记中指出用户控件的 地址。然后才能在后台代码中使用该用户控件。实现动态装载用户控件的步骤如下所示。 (1)在当前项目中,添加一个页面default2.aspx,然后在其“page”行下面,添加以下 内容。 (2)打开default2.aspx.cs文件,在其page_load事件中
8、,动态装载用户控件,代码如下 所示。 protected void page_load(object sender, eventargs e) /定义一个用户控件 usercontrol mycontrol = (usercontrol)loadcontrol(calendarcontrol.ascx); /设置用户控件的初始值 (calendarcontrol)mycontrol).calendardate=2008-10-10; /用panel装载控件 panel1.controls.add(mycontrol); 这里要注意,必须将动态装载的控件放在一个容器内,如本例放在panel中,因
9、为必须将控 件放在具有runat=server的窗体标记内。 (3)运行这个页面,主要观察两个结果,是否可以给这个用户控件设置当前默认值,是否 可以正常加载这个用户控件。 11.3 用户控件缓存问题 在用户控件中使用缓存,就是asp.net中常说的片段缓存。在用户 控件中使用缓存,需要添加“outputcache”指令,代码如下所示。 varybyparam表示缓存依赖的参数,本例不提供依赖参数。 duration表示缓存10秒。 在用户控件中添加这个指令后,用户控件就具备了缓存功能。因 为页面初次加载时使用的是用户控件本身,而接下来在缓存周期 内就是使用的缓存对象。所以在加载用户控件时,就需
10、要先指定 用户控件的属性。这添加在应用页面的page_load事件中。 打开default.aspx.cs页面,书写page_load事件的代码如下所示。 protected void page_load(object sender, eventargs e) if (calendarcontrol1 != null) calendarcontrol1.calendardate = system.datetime.now.toshortdatestring(); 11.4 用户控件与母版页、普通页面的比较 用户控件的设计与普通页面一样,两者的主要区别是: (1)用户控件的扩展名为“ascx”,
11、而普通页面为“aspx”。 (2)与普通页面不同,用户控件无法在客户端直接浏览。使用用 户控件,只能把用户控件包含在页面内部。 (3)作为页面中的元素,一个页面上可以放置多个用户控件。 (4)用户控件的应用同普通的服务器控件相同,具有自身的属性、 方法,以及响应使用者操作的事件,并可用编程的方式操作用户 控件。 用户控件与母版页的区别: (1)具有master文件扩展名,还有一个master指令。 (2)母版页包含位于每个独立页面中的顶级html标记。如、 等。 (3)使用母版页可以快速标准化站点,简化整个网站的布局。 (4)提供contentplaceholder控件,也可以称为容器,装载内容 页的所有控件。 11.5 小结 本章通过一个简单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 葬礼进行曲课件
- 2025配送员合同协议范本
- 小班养鱼美篇题目及答案
- 常用工具考试试题及答案b卷
- 叉车培训考试试题答案及答案
- 2024译林版八年级英语上册Unit6 Seasons 动词和基本句型(一)含答案
- 仓库后勤管理考试题库及答案
- 2025年西式面点师职业岗位技术资格知识考试题与答案
- 营销课件APP教学课件
- 2025年五升六年级语文暑假专项提升:汉字(知识点归纳+试题)含答案
- 母乳喂养知识培训-课件
- DBJ41T 256-2021 河南省海绵城市设计标准 河南省工程建设标准(住建厅版)
- 独家授权合同模板
- 南京外国语2024-2025九年级上学期第一次月考物理试卷及答案
- 绿色火车站建设与可持续发展
- 湖南省名校联盟2024-2025学年高二上学期入学考试物理试题
- 成人鼻肠管的留置与维护(2021团体标准解读)-20221004172843
- 一年级道德法治教案设计
- 机电安装验收证明书
- 2024年上海市自来水公司招聘笔试冲刺题(带答案解析)
- 教科版科学三年级上册《1.1水到哪里去了》课件
评论
0/150
提交评论