`
tempsitegoogle
  • 浏览: 885783 次
文章分类
社区版块
存档分类
最新评论

开发asp.net自定义控件

 
阅读更多

学习自定义控件的开发不仅可以使你开发出更灵活的系统更重要的是它可以使你加深对已有服务器控件的理解,得以更灵活的应用。


较之于asp,asp.net提供了更强大的功能,我比较喜欢它的代码分离技术和对诸如C#、VB.Net等强类型语言的使用,这是从开发者的角度来看 的,从用户的角度来看,会觉得它速度更快,运行更稳定,安全性也更高。不管怎么说,新技术的产生总会使许多人感到高兴,不过对开发者来说,坏消息是他们需 要学习更多新的知识。

Asp.net有了很多的改变,比如你可能会发现供我们操作的元素也和以前有了很大的不同,原来标准的HTML元素变成了现在的服务器控件,所谓服务器控 件,就是在服务器上运行,并可以映射到所有浏览器支持的标准 HTML 标记的控件,在你的web窗体中,凡是包含 runat="server" 属性声明的元素都叫做服务器控件(在VS.Net中的设计页面中,用一个小小的绿色箭头表示),你可以用原有的HTML元素并加上 runat=”server”属性使其变为一个服务器控件,这叫做HtmlControls,它可以直接映射到标准HTML标记;也可以使用.Net提供 的全新的WebControls,它比前者更抽象,功能也更加强大。不管采用哪一类控件,runat=”server”属性都将会使你可以以编程方式访问 这些元素。

这很容易理解,服务器控件就是在服务器端运行的控件,经过服务器端某些程序的解析再生成标准的HTML代码显示在我们的浏览器上,事实上,Web Form之所以可以提供最大可能的浏览器兼容性也是基于此理。与通常的理解稍稍有些不同,在asp.net中,一个页面(Page),一个验证控件,一个 用户控件(User Control),都可以看作是一个独立的控件,它来自于其它控件的组合。除了使用.Net提供的一系列控件外,你还可以到网上找一些免费的控件, [url]www.asp.net[/url]中的Control Gallery一栏就收集了很多常用的Control。

在asp.net中,(传统意义上)可供你开发的控件实际上有两种:Custom Control 和 User Control。Custom Control 是纵向的,是对系统本身控件的继承和扩充,在程序中以DLL文件形式存在,User Control 则是横向的,是对系统本身控件的组合,在系统中以.ascx为后缀名。这两种控件功能相同,都可以为开发人员提供可复用的可视化UI组件,相比之下前者具 有更大的灵活性,同时开发起来比较复杂,而后者容易开发,但可重用性就比较差。一般来说用户会先用User Control来开发,只有当其不堪重用的时候才转而使用Custom Control。
事实上,用户自己开发Custom Control并不是一件很困难的事,只需要定义一个直接或间接从Control 派生的类并重写它的 Render 方法即可,System.Web.UI.Control与System.Web.UI.WebControls.WebControl两个类是服务器控件 的基类。 Control 类定义了所有服务器控件共有的属性、方法和事件。其中包括控制控件执行生命周期的方法和事件,以及 ID、UniqueID、Parent、ViewState 和 Controls(子控件集合)等属性。Control 没有用户界面 (UI) 特定的任何功能。如果创作的控件没有提供 UI,或者组合了其他呈现其自己的 UI 的控件,则从 Control 派生。 WebControl 类是从 Control 派生的,并为 UI 功能提供附加的属性和方法。这些属性包括 ForeColor、BackColor、Font、BorderStyle、Height 和 Width。WebControl 是 ASP.NET 中 Web 服务器控件系列的基类。如果控件呈现 UI,则从 WebControl 派生。
可以重写从基类继承的属性、方法和事件,并可以将新的属性、方法和事件添加到自定义控件中,所前所述,我们使用重写Render方法来实现对HTML代码 的输出。Render 方法采用 System.Web.UI.HtmlTextWriter 类型的参数。控件要发送到客户端的 HTML 作为字符串参数传递到 HtmlTextWriter 的 Write 方法。下面我们使用VS.Net来开发一个简单的自定义控件(使用VS.Net的原因是为了方便开发者调试,在正式开发中我们经常使用的也是 VS.Net)。
首先新建一个空白解决方案,然后为其添加两个项目,一个名为MyControls的Web控件库项目和一个叫做Web的Web应用程序项目,后者用于测试我们开发出的控件。
在Web项目上点击右键,选择依赖项,使项目Web取决于MyControls,接着再为Web项目添加MyControls的引用(编译成的 MyControls.dll文件后被copy到Web目录的Bin文件夹下,你可以在任何地方使用这个MyControls.dll文件)。
在MyControls项目中添加一个Web自定义控件并命名为MyControl.cs,接着在Web项目中的WebForm1.aspx文件首行添加如下代码(用于向页面注册此控件):
<%@ Register TagPrefix="ccs" Namespace="MyControls" Assembly="MyControls" %>
在<Form>标记之间添加如下代码(添加此控件到页面上):
<ccs:MyControl id="Control1" runat="server" Text="Hello World"></ccs:MyControl>
OK,一个带有Text属性的自定义控件已经完成了,现在就可以运行它并观看效果了。
这个控件的结果仅仅是将一行文本输出到浏览器并显示出来,但是我们平时所用到的控件,小到如Label,大到如DataGrid,都是基于这一原理开发出来的。接着我们看一下这个自定义控件源文件(MyControl.cs)的组成。

分享到:
评论

相关推荐

    asp.net 自定义控件源码

    ASP.NET自定义控件是开发ASP.NET Web应用程序时的一个重要技术。它允许开发者根据特定需求创建功能独特的用户界面元素,从而提高应用的可扩展性和可维护性。在本压缩包中,提供的“asp.net 自定义控件源码”是个人...

    ASP.NET自定义控件实例教程

    ASP.NET自定义控件是.NET...总之,ASP.NET自定义控件是提高开发效率和实现创新用户界面的关键工具。通过深入学习和实践本教程提供的实例,你将成为一名熟练的ASP.NET开发者,能够自如地应对各种复杂的网页开发挑战。

    ASP.NET用户控件和自定义控件

    在ASP.NET中,用户控件和自定义控件是两种重要的组件,它们扩展了.NET Framework的内置控件,帮助开发者创建具有特定功能和交互性的界面元素。 **用户控件(User Control)** 用户控件是ASP.NET中的基本自定义UI元素...

    asp.net 自定义控件 上图文件控件

    在ASP.NET中,自定义控件是开发人员为了满足特定需求而创建的用户界面元素。这些控件可以扩展内置的ASP.NET控件功能,或者完全创新地构建全新的UI组件。"asp.net 自定义控件 上图文件控件"指的是一个特别的自定义...

    ASP.NET自定义控件源代码

    ASP.NET是一种基于.NET Framework的...通过这个源代码学习,你可以深入理解ASP.NET自定义控件的工作原理,以及如何根据实际需求构建自己的控件库,提高开发效率。同时,这也是提升.NET框架技能和Web开发能力的好机会。

    asp.net自定义控件代码例子

    在ASP.NET中,自定义控件是开发人员为了满足特定需求而创建的具有独特功能的服务器控件。...记住,实践是最好的老师,尝试创建自己的自定义控件并将其应用于实际项目,这将加深你对ASP.NET自定义控件的理解。

    asp.net 自定义控件 抽屉控件

    ASP.NET自定义控件是开发高效、可复用的Web应用程序的重要组成部分。抽屉控件是一种常见的UI元素,常用于实现折叠式展示内容,提高页面的用户体验和空间利用效率。在ASP.NET中创建一个抽屉控件需要理解控件生命周期...

    asp.net自定义控件

    一款自定义的控件,通过操作txt,html格式的文件达到repeater控件的效果,在CSS使用方面比repeater控件更易于操作,输出到页面后完全是html的标签,如果想在输出过程中加入服务器控件的话,改案例还无法达到要求,...

    《ASP.NET自定义控件实例教程》[中文PDF+源代码].

    ASP.NET自定义控件系列文章 前言 第一天 简单的星级控件 第二天 带有自定义样式的星级控件 第三天 使用控件状态的星级控件 第四天 折叠面板自定义控件 第五天 可以评分的星级控件 第六天 可以绑定数据源的...

    Asp.net自定义控件

    综上所述,Asp.net自定义控件、复合控件、远程修改配置文件以及IIS配置是ASP.NET开发中不可或缺的部分。理解并掌握这些知识点,可以帮助开发者创建出高效、灵活且易于维护的Web应用程序。在实际项目中,根据需求选择...

    ASP.NET自定义控件教程

    ASP.NET自定义控件是开发高效、可复用的Web应用程序的重要组成部分。在这个教程中,我们将深入探讨如何创建和使用自定义控件,以便更好地理解这个强大的特性。 首先,我们来了解一下什么是ASP.NET自定义控件。在ASP...

    ASP.NET自定义验证控件

    ASP.NET自定义验证控件是开发Web应用程序时常用的一种技术,它允许开发者根据特定业务需求创建个性化的验证规则。在ASP.NET中,验证控件是一个非常重要的组成部分,它确保用户输入的数据符合预设的格式和标准,从而...

    ASP.NET自定义控件教程.pdf

    ### ASP.NET自定义控件教程知识点详解 #### 一、ASP.NET自定义控件概述 **自定义控件**是ASP.NET中一个重要的概念,它允许开发者创建具有特定功能的服务器端控件,以满足特定的应用需求。这些控件不仅能够提供用户...

    ASP.NET自定义控件 真正可以评分的星级控件.doc

    ASP.NET 自定义控件之星级控件 ASP.NET 自定义控件是指在 ASP.NET 平台上创建的可重复使用的控件,可以满足不同的业务需求。星级控件是其中的一种,通常用于评分和评价,如电影、商品、服务等。今天,我们要实现一...

    asp.net自定义控件开发实例(学习)

    ASP.NET自定义控件开发是Web应用程序开发中的一个重要环节,它允许开发者根据需求创建具有特定功能和外观的组件。在本实例中,我们将探讨如何基于ASP.NET平台进行自定义控件的开发,以及如何通过实践来提升自己的...

Global site tag (gtag.js) - Google Analytics