




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
创建ASP.Net自定义控件 分类: ASP.NET自定义控件 2006-12-30 15:34 6077人阅读 评论(10) 收藏 举报 自定义服务器控件完全由开发人员自行设计开发,开发人员可自定义UI、功能、属性、方法、事件等特征,常见的自定义服务器控件分为4种:复合控件、验证控件、模板控件和数据绑定控件。(1)复合控件:该类控件包含两个或多个已存在控件。它复用了子控件提供的实现来进行控件呈现、事件处理及其他功能。(2)验证控件:与上文所述标准服务器控件中的验证控件定义相同。(3)模板控件:该类控件提供了一种称为模板的通用功能。模板控件本身不提供用户界面,而是通过内联模板提供,这意味着模板控件允许页面开发人员自定义该控件的用户界面。(4)数据绑定控件:与上文所述标准服务器控件中的数据绑定控件定义相同。本文将介绍简单在VS环境中如何创建自定义服务器控件的过程。实例一:创建自定义控件过程(1)创建一个测试用Web站点应用程序首先打开Visual Studio 2005,然后,单击文件菜单下新建网站.项目。这时,将弹出如下图的对话框 在此对话框中,开发人员需要选择创建模板,位置、编程语言。如图1所示,示例采用了ASP.NET网站模板,文件系统和C#编程语言来创建。当单击确定按钮之后,Visual Studio 2005将在本机D:/AppTest下创建一个test1文件夹。所有应用程序文件都存储在文件夹内。默认情况下,test1文件夹内包括一个空的用于存储应用程序数据文件的App_Data文件夹,同时还分别包括一个Default.aspx和Default.aspx.cs文件。通过这一过程,创建了一个Web站点应用程序。该Web站点将用于测试所创建的Web自定义服务器控件。(2)添加自定义控件项目 成功创建Web控件测试项目之后,创建自定义控件项目过程如下:文件/新建项目出现如下图所示对话框在左侧“项目类型”列表中选择Visual C#节点下的Window,之后在右侧模版列表中选择“类库”设置此项目的名称和存储位置,一般为了便于管理建议建议将Web控件库项目和测试站点项目存储在同一文件夹内。注意:在解决方案选项设置中选择添入解决方案。Visual Studio 2005的解决方案资源管理器将显示如图所示内容。解决方案资源管理器中包括两个项目。一个是前文创建的Web站点项目,另一个是名为ClassLibrary1的Web控件库项目,其中默认包括一个WebCustomControl1.cs文件。下面就可以开始编写、编译和测试自定义服务器控件了(3)编写控件一个简单的自定义控件此控件ShowDate控件功能实现显示当前日期标签控件,由System.Web.UI.WebControls.WebControl继承,具有一个custom属性,用于显示问候信息;例如将custom属性值设置为Ch,则显示结果为2006年12月30日 星期六。ShowDate控件的实现代码包含在ShowDate.cs文件中。该文件源代码如下所示。usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Text;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;namespaceClassLibrary1.DefaultProperty(Custom)ToolboxData()publicclassShowDate:WebControl.Bindable(true)Category(Appearance)DefaultValue(Ch)Localizable(true)publicstringCustom.get.Strings=(String)ViewStateCustom;return(s=null)?Ch:s);set.ViewStateCustom=value;protectedoverridevoidRenderContents(HtmlTextWriteroutput).strings;if(Custom.Equals(Ch).s=DateTime.Now.ToString(D);stringx=newstring7.日,一,二,三,四,五,六;intn;n=int.Parse(DateTime.Now.DayOfWeek.ToString(D);s+=星期+xn+string.Format(0:t,DateTime.Now);else.s=string.Format(0:R,DateTime.Now);output.Write(s);代码说明:基类说明:如果服务器控件需要呈现用户界面(UI)元素或任何其他客户端可见的元素,则应该从system.Web.UI.WebControls.WebControl(或派生类)派生该控件。如果控件要呈现在客户端浏览器中不可见的元素(如隐藏元素或meta元素),则应从System.Web.UI.Control派生该控件。本例显然需要呈现用户界面元素,因此,自定义服务器控件类WelcomeLabel从WebControl基类继承。由于WebControl类从Control派生,因此,WelcomeLabel控件则自动继承基类提供的成员对象,这些对象多数与用户界面元素呈现有关,例如,Font、ForeColor、BackColor、Width等等。另外,同样也是由于从WebControl继承,因此,WelcomeLabel控件还自动实现ASP.NET 2.0新增的主题和皮肤功能。实际上,由于WelcomeLabel控件与ASP.NET 2.0的内置服务器控件Label有着很多相似之处,因此,从功能实现的角度出发,最好的方式应该是使得WelcomeLabel控件类从Label类继承。然而,本例为了说明定义属性和定义属性元数据的实现方法,因此,从WebControl基类继承。属性说明:如上原代码所示,定义了一个Custom属性,该属性的设置是对当前日期显示格式设置是中文呢还是英文。使用视图状态存储Custom属性值。使用视图状态保存回发间的Custom值。每次回发时,将重新创建页并从视图状态还原值。如果Custom值并未存储在视图状态中,则在每次回发时会将值设置为其默认的“ch”。ViewState属性继承自WebControl,是保存数据值的字典。通过使用String键,可输入和检索值。本例中将Custom用作键。字典中的项被类型化为Object,然后必须将其强制转换为属性类型。通常为了正确配置属性,我们不仅必须编写代码,还要分配几个特性。 特性(以粗体表示)定义了新控件将如何与设计器 (Visual Studio) 进行交互。Custom属性的特性告诉 Visual Studio 如何在设计过程中处理属性:Bindable 属性可绑定 到数据源。您可以将 属性字段链接到数据库、XML 文件或任何其他 DataSet。 Appearance 属性将显示在 Appearance 类别下的属性视图中。您可以选择想要的任何类别,包括默认类别:Appearance、Accessibility、Behavior、Data、Layout 或 Misc。只要用户选择了属性的类别组织方法,属性将会显示在 Appearance 下。DefaultValue属性具有一个空的默认值。Description 属性说明显示在控件列表下,并且也可能作为工具提示出现。Localizable 它会用发送信号的方式通知 ASP.NET 2.0 Framework 该控件包括可以针对不同语言或位置进行配置的文本属性。RenderContents方法说明:通常,在从WebControl派生控件并呈现单个元素时,应重写RenderContents方法(而不是Render方法),以呈现控件标记中的内容。在呈现控件及其样式属性的开始标记之后,WebControl的Render方法将调用RenderContents。如果重写Render方法以写入内容,则控件将丢失生成到WebControl的Render方法中的样式呈现逻辑。在源代码中,ShowDate控件重写了继承的RenderContents方法以呈现内容。传入RenderContents方法的参数是HtmlTextWriter类型的对象,它是具有呈现标记和其他HTML(和HTML变量)标记的方法的实用工具类。(4)编译使用自定义控件在编写完成ShowDate控件的源代码之后,接着需要编译和测试所实现的自定义服务器控件。为了实现这一目的,开发人员需要在测试用Web站点中引用Web控件库项目输出,并编写相关代码以便测试服务器控件。在Web站点中实现Web控件库项目引用的方法比较简单。首先,右键单击解决方案资源管理器中的Web站点项目名称,在弹出的菜单中选中添加引用.一项。此时,将自动弹出如图所示的窗口。 在添加引用窗口中包括5个选项卡,其中包括一个名为项目的选项卡。单击它可发现在其列表中包括一个上文创建的ClassLibrary1项目。选中该项并单击确定按钮,即可完成项目引用。在完成项目引用后,Visual Studio 2005将自动在Web站点项目中添加一个Bin文件夹,并在其中包含了ClassLibrary1.dlll和ClassLibrary1.pdb文件。前者是控件程序集,后者中则保存着调试和项目状态信息。这样,Web站点就能够
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Ethoxzolamide-Standard-生命科学试剂-MCE
- 武汉事业单位笔试真题2025
- 农发行湘潭市湘乡市2025秋招半结构化面试15问及话术
- 农发行兴安盟突泉县2025秋招半结构化面试题库及参考答案
- 2025年遵义市事业单位考试真题
- 农村新能源市场2025年智能化发展趋势研究报告
- 农发行达州市达川区2025秋招笔试专业知识题专练及答案
- 2025年新能源汽车充电基础设施与生物质能发电设施互联互通研究报告
- 工业区位因素
- 今年高考的试卷及答案
- 小学语文教师职称考试试题及答案
- 第5章 绩效评价(《绩效管理》第3版)
- 2025-2026学年人教版(2024)初中地理八年级上册教学计划及进度表
- 2025年上半年黑龙江省嫩江铁路有限责任公司校招笔试题带答案
- 机电设备安装与维护方案
- 2025存量房买卖合同协议书范本
- 肿瘤科诊疗体系构建与运营管理
- 2025-2026粤教粤科版(2024)科学三年级上册教学设计(附目录)
- 公共营养师考试题库(附答案)四级真题及答案
- 广东省深圳市福田区2024-2025学年八年级上学期语文期中考试试卷(含答案)
- 以资抵账管理办法
评论
0/150
提交评论