版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用户控件和自定义控件用户控件和自定义控件1学习目的与要求除在ASP.NET网页中使用Web服务器控件外,还可以使用用于创建ASP.NET网页的相同技术创建可重复使用的自定义控件,这些控件称作用户控件。学习目的与要求除在ASP.NET网页中使用Web服务器2本章主要内容用户控件:包括什么是用户控件和如何创建用户控件。将Web窗体转换成用户控件。自定义控件的开发。用户控件和自定义控件的异同。本章主要内容用户控件:包括什么是用户控件和如何创建用户控件。31用户控件用户控件是一种复合控件,工作原理非常类似于ASP.NET网页。可以向用户控件添加现有的Web服务器控件和标记,并定义控件的属性和方法。然后可以将控件嵌入ASP.NET网页中充当一个单元。1用户控件用户控件是一种复合控件,工作原理非常类似于ASP41.1用户控件概述用户控件使开发人员能够根据应用程序的需求,方便的定义和编写控件。开发所使用的编程技术将与编写Web窗体的技术相同,只要开发人员对控件进行修改,就可以将使用该控件的页面的所有控件都进行更改。1.1用户控件概述用户控件使开发人员能够根据应用程序的需求51.1用户控件概述用户控件与ASP.NET网页有以下区别:(1)用户控件的文件扩展名为.ascx。(2)用户控件中没有@Page指令,而是包含@Control指令,该指令对配置及其他属性进行定义。(3)用户控件不能作为独立文件运行。而必须像处理任何控件一样,将它们添加到ASP.NET页中。(4)用户控件中没有html、body或form元素。这些元素必须位于宿主页中。1.1用户控件概述用户控件与ASP.NET网页有以下区61.2将Web窗体页转换为用户控件1.将单文件ASP.NET网页转换为用户控件将单文件ASP.NET网页转换为用户控件的步骤如下:(1)重命名控件使其文件扩展名为.ascx。(2)从该页面中移除html、body、head
和form元素。(3)将@
Page指令更改为@
Control指令。(4)移除@
Control指令中除Language、AutoEventWireup(如果存在)、CodeFile和Inherits之外的所有特性。(5)在@
Control指令中包含className特性。这允许将用户控件添加到页面时对其进行强类型化。1.2将Web窗体页转换为用户控件1.将单文件ASP.N71.2将Web窗体页转换为用户控件2.将代码隐藏ASP.NET网页转换为用户控件将代码隐藏ASP.NET网页转换为用户控件的步骤如下:(1)重命名.aspx文件,使其文件扩展名为.ascx。(2)根据代码隐藏文件使用的编程语言,重命名代码隐藏文件使其文件扩展名为.ascx.vb或.ascx.cs。(3)打开代码隐藏文件并将该文件继承的类从Page
更改为UserControl。(4)针对每个.aspx文件,按照将单文件ASP.NET网页转换为用户控件的步骤操作。(5)在@
Control指令中包含className特性。这允许将用户控件添加到页面时对其进行强类型化。1.2将Web窗体页转换为用户控件2.将代码隐藏ASP.81.2将Web窗体页转换为用户控件3.将Web窗体转换成用户控件首先,需要删除<body>、<html>、<head>等标记。对于Web窗体,其标记方式的代码参见webPage.aspx页面文件。而对于用户控件,声明代码参见webPageUserControl.ascx文件。1.2将Web窗体页转换为用户控件3.将Web窗体转换成用91.3用户控件的开发1.建立用户控件在VisualStudio2008中,首先打开或新建一个网站项目,新建用户控件。1.3用户控件的开发1.建立用户控件101.3用户控件的开发用户控件创建完毕后,会生成一个WebUserControl1.ascx页面,然后它将在设计器中打开。用户控件创建完成后,.ascx页面的代码如下所示。<%@ControlLanguage="C#"AutoEventWireup="true"CodeBehind="WebUserControl1.ascx.cs"Inherits="WebApp7_1.WebUserControl1"%>1.3用户控件的开发用户控件创建完毕后,会生成一个WebU111.3用户控件的开发2.完善用户控件ASP.NET用户控件能够封装一个单元中多个子控件的功能。用户控件由一个或多个ASP.NET服务器控件(Button控件、TextBox控件等)以及控件执行功能所需的任何代码组成。用户控件还可以包括自定义属性或方法,这些属性或方法向容器(通常为ASP.NET页)显示用户控件的功能。1.3用户控件的开发2.完善用户控件12用户控件实例编写一个用户登录控件用户控件实例编写一个用户登录控件132自定义控件用户控件能够执行很多操作。并实现一些功能,但是在复杂的环境下,用户控件并不能够达到开发人员的要求,是因为用户控件大部分都是使用现有的控件进行组装,编写事件来达到目的。于是,ASP.NET允许开发人员编写自定义控件实现复杂的功能。2自定义控件用户控件能够执行很多操作。并实现一些功能,但是142.1简单的自定义控件自定义控件是编写的一个类,此类从Control或WebControl派生。Control类提供了将其放在Page类的控件树中的基本功能。自定义控件需要定义一个直接或间接从Control类派生的类,并重写Render方法。WebControl类将功能添加到基本的控件类,用于在客户端计算机上显示可视的内容。例如可以使用WebControl类以控制外观和样式通过诸如字体、颜色和高度等属性。2.1简单的自定义控件自定义控件是编写的一个类,此类从Co15简单自定义控件实例首先,需要创建一个自定义控件ServerControl1。简单自定义控件实例首先,需要创建一个自定义控件Server16简单自定义控件实例自定义控件创建完成后,会自动生成一个类和相应的方法,用户能够在源代码中编写属性,示例代码如下所示。privateintnoOfTimes;publicintNoOfTimes//编写属性{get{returnthis.noOfTimes;}//获取属性
set{this.noOfTimes=value;}//设置属性}简单自定义控件实例自定义控件创建完成后,会自动生成一个类和17简单自定义控件实例然后,开发人员可以在源代码中编写和添加属性。当需要呈现给HTML页面输出时,只需要重写Render方法即可。接着,需要将自定义控件编译成DLL文件。还需要打开现有的或创建一个新的ASP.NETWeb应用程序项目。在该webApp7-2项目中添加自定义控件的引用。单击【确定】按钮完成引用的添加后,就可以在页面中使用此自定义控件。若需要在页面中需要使用此自定义控件,同样与用户控件一样需要在头部声明自定义控件,示例代码如下所示。<%@RegisterTagPrefix="MyControl"Namespace="ServerControl1"Assembly="ServerControl1"%>简单自定义控件实例然后,开发人员可以在源代码中编写和添加属18简单自定义控件实例自定义注册完毕后,在工具栏中也会呈现自定义控件,如图7-11所示。就可以直接拖动自定义控件到页面,并且配置相应的属性简单自定义控件实例自定义注册完毕后,在工具栏中也会19简单自定义控件实例用户拖动自定义页面到控件后,页面会生成相应的自定义控件的HTML代码如下所示。<formid="form1"runat="server"><div><MyControl:ServerControl1ID="ServerControl11"runat="server"/></div></form>详细源代码参见ServerControl1的ServerControl1.cs文件,项目WebApp7-2中的Default.aspx文件简单自定义控件实例用户拖动自定义页面到控件后,页面会生成相202.2复合自定义控件最常见的复杂功能控件就是SqlDataSource控件。SqlDataSource控件是数据源控件,通过SqlDataSource控件能够配置数据源,并且实现分页、插入、删除等功能。复合自定义控件就类似这样一个功能复杂的控件。2.2复合自定义控件213用户控件和自定义控件比较对比用户控件和自定义控件,很多人或认为用户控件更加容易开发,而自定义控件的门槛较高,不方便应用程序的开发。通常用户控件在一个项目中经常使用,而自定义控件用来在通用的程序中使用,当网站应用程序开发中,导航控件如果使用用户控件实现,是非常方便的。但是通过自定义控件实现,可能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山东水利职业学院单招综合素质笔试参考题库附答案详解
- 2026年湖北工程职业学院单招综合素质考试备考试题附答案详解
- 二年级数学计算题专项练习1000题汇编集锦
- 初中英语听力理解中文化背景知识激活策略探究课题报告教学研究课题报告
- 2024年青海职业技术大学马克思主义基本原理概论期末考试真题汇编
- 2025年信阳航空职业学院马克思主义基本原理概论期末考试笔试题库
- 2025年广东碧桂园职业学院马克思主义基本原理概论期末考试真题汇编
- 2025年上海城建职业学院马克思主义基本原理概论期末考试笔试题库
- 2024年广西外国语学院马克思主义基本原理概论期末考试模拟试卷
- 2025年连云港职业技术学院马克思主义基本原理概论期末考试笔试真题汇编
- 2025年广西普法国家工作人员学法用法学习考试题库及答案
- 雨课堂学堂云在线《解密3D打印(西北工大 )》单元测试考核答案
- 2026年中国酸黄瓜罐头行业市场占有率及投资前景预测分析报告
- 2025福建中闽能源股份有限公司招聘6人笔试历年参考题库附带答案详解
- 阀门电动执行器知识培训课件
- DB42∕T 1785.1-2021 水生蔬菜良种繁育技术规程 第1部分:藕莲和子莲
- 2025年福建会考政治试卷及答案
- 赵爽证明勾股定理课件
- DB31∕T 1450-2023 旅游码头服务基本要求
- 2025至2030中国电力设备检测行业项目调研及市场前景预测评估报告
- 人工智能与创业智慧(北京林业大学)学习通网课章节测试答案
评论
0/150
提交评论