自定义asp.net控件分析 (一)

原创 2003年06月19日 16:03:00

自定义asp.net控件分析 (一)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

前些日子,自己做了几个控件。想把自己对自定义控件的一些了解写出来,请大家多多发表自己对自定义控件制作的心得。

让我们能更好的动手制作自己所需功能的控件。

下面就以,.net自动生成的模版做一解释。(以vb语言为例)

1.Imports System.ComponentModel

2.Imports System.Web.UI

3.<DefaultProperty("Text"), ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")> Public Class WebCustomControl1

4.    Inherits System.Web.UI.WebControls.WebControl

5.    Dim _text As String

6.    <Bindable(True), Category("str"), DefaultValue("11111")> Property [Text]() As String

7.         Get

8.            Return _text

9.         End Get

10.        Set(ByVal Value As String)

11.            _text = Value

12.        End Set

13.    End Property

14.    Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)

15.        output.Write([Text])

16.    End Sub

17.End Class

'---------------------------------------------------------------

'1-2 导入命名空间,System.ComponentModel和 System.Web.UI 这没什么好介绍的

'3 DefaultProperty("Text")--指定属性的默认值。如果用此属性需要导入(命名空间: System.ComponentModel)

ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")

指定当从 Visual Studio 等工具中的工具箱拖动自定义控件时为它生成的默认标记。

在下面的示例中,设置特定于 MyLabel 的若干属性。{0} 的所有匹配项都由设计器替换为与 MyLabel 类关联的标记前缀。

<ToolboxData("<{0}:MyLabel Text='MyLabel' BorderColor='Yellow' BackColor='Magenta' BorderWidth = '10'  runat='server'></{0}:MyLabel>")>

Public Class WebCustomControl1定义类名为webcustomcontrol1,以后编译生成的dll名为webcustomtrol1

(注意:如果你修改类名。则需要修改{0}:后相对应的名字。例如:你把类名webcustomcontrol1改为webcustom

则需要把ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")改成

ToolboxData("<{0}:webcustom runat=server></{0}:webcustom>") 否则编译后将出错。)

'4 Inherits 表示继承。这里是继承System.Web.UI.WebControls.WebControl的方法,属性,事件等。

'6 这句主要是控制自定义控件在’属性浏览器‘中的显示,先解释模版的句子,再扩展开讲

Property [Text]() As String定义 text属性 为字符串类型

Bindable(True)指定是否要绑定到该属性。-True为是,False为不

Category("Appearance") --text属性将显示在外观组中。指定类别的名称,在该类别中将对属性或事件进行分组。当使用了类别时,组件属性和事件可以按逻辑分组显示在属性浏览器中。

DefaultValue("")为属性设置一个简单的默认值。这里为空

下面列出所有的特性

详细资料可查看ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpcondesign-timeattributesforcomponents.htm

 

 

属性

应用于

说明

BrowsableAttribute

属性和事件

指定属性或事件是否应该显示在属性浏览器中。

CategoryAttribute

属性和事件

指定类别的名称,在该类别中将对属性或事件进行分组。当使用了类别时,组件属性和事件可以按逻辑分组显示在属性浏览器中。

DescriptionAttribute

属性和事件

定义一小块文本,该文本将在用户选择属性或事件时显示在属性浏览器底部。

BindableAttribute

属性

指定是否要绑定到该属性。

DefaultPropertyAttribute

属性

(将此特性插入类声明前。)

指定组件的默认属性。当用户单击控件时,将在属性浏览器中选定该属性。

DefaultValueAttribute

属性

为属性设置一个简单的默认值。

EditorAttribute

属性

指定在可视设计器中编辑(更改)属性时要使用的编辑器。

LocalizableAttribute

属性

指定属性应本地化。当用户要本地化某个窗体时,任何具有该特性的属性都将自动永久驻留到资源文件中。

DesignerSerializationVisibilityAttribute

属性

指定显示在属性浏览器中的属性是否应该(以及如何)永久驻留在代码中。

TypeConverterAttribute

属性

指定将属性的类型转换为另一个数据类型时要使用的类型转换器。

DefaultEventAttribute

事件

(将此特性插入类声明前。)

指定组件的默认事件。这是当用户单击组件时在属性浏览器中选定的事件。

 

.net中还支持自定义特性,这里就不说,有兴趣的可以去查msdn,上面有详细说明 

可参考ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpconwritingcustomattributes.htm

7-12很简单,意思就是返回(Get)Text属性的值和设置(Set)Text属性的值

13 Text属性的结束

14-16 这个过程作用是重写控件的呈现。这里是在页面上显示Text属性的值

 

这里只是简单介绍了一下自定义控件。我将在下一篇里,用例子来具体介绍自定义控件中的属性、方法、事件。

强大的ASP.NET控件----用户控件对战自定义控件

用户控件,用户控件的属性 自定义控件,如何使用自定义和用户控件,如何制作自定义控件和用户控件...
  • u010073895
  • u010073895
  • 2014年11月08日 21:34
  • 2655

asp.net WebForm之用户自定义控件

关于用户自定义控件,想必大家已经非常熟悉了。虽然说经常用过,但是只是简单的使用而已。在这里再次总结一下Asp.net中的UserControl,以便下次使用时 能够得心应手。本文将会介绍以下内容...
  • ydm19891101
  • ydm19891101
  • 2016年05月11日 09:45
  • 2678

Asp.net 用户控件添加自定义事件asp.net

Asp.net 用户控件添加自定义事件asp.net
  • Sunqlive
  • Sunqlive
  • 2016年09月07日 11:17
  • 869

ASP.NET自定义服务器控件

最简单的服务器端控件开发流程简介。
  • yanwushu
  • yanwushu
  • 2014年04月08日 21:34
  • 4316

ASP.NET自定义控件组件开发 第一章:从一个简单的控件谈起

起始开发ASP.NET自定义控件不是那么的高深,当初我开始学的时候还有点恐惧,但是慢慢就好了。学习控件的开发技术,并不一定说以后要从事控件的开发,而是让我们深入的理解掌握ASP.NET内部的机理。你会...
  • quan_QQ
  • quan_QQ
  • 2017年03月07日 23:21
  • 1013

asp.net向自定义控件传递参数-两个例子

在控件.ascx.cs声明控件属性           private int _ClassID = 0;           public int ClassID           {  ...
  • lishimin1012
  • lishimin1012
  • 2014年06月27日 21:14
  • 4868

【asp.net】用户控件&自定义控件

在原来的学习中,从vb到asp.net我们都接触了很多的控件,这些控件为我们的程序开发提供了很多的便利,在程序开发中,许多功能或代码都需要重复的使用,我们在牛腩的时候学习了模板方法和重复代码添加工具箱...
  • u013046597
  • u013046597
  • 2015年08月08日 16:45
  • 1436

设置自定义ASP.NET服务器控件TagPrefix的几种方法

方法一、在Web.config中配置,具体做法为:在Web.config文件的System.web节中添加如下代码 1pages> 2  controls> 3     add asse...
  • Yelbosh
  • Yelbosh
  • 2013年12月16日 15:54
  • 962

ASP.NET总结——Web自定义控件

北大青鸟ASP.NET的视频,向我们介绍了用户控件和自定义控件。        先简单说一下这两者的明显的区别。 用户控件的扩展名为.aspx;自定义控件的扩展名为.dll。用户控件使用时,需...
  • u010924834
  • u010924834
  • 2014年09月15日 15:58
  • 2091

用户控件&自定义控件----.Net再学

开始学习.Net到现在两年了快,开始学习java 也有大半年了,中间做项目,又开始.Net的学习。这次做.Net项目,后台代码敲的不是太多,重点放在了UI上,这也是这篇博客要写的内容有关,做UI就少不...
  • wangyongxia921
  • wangyongxia921
  • 2015年01月30日 22:42
  • 1257
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义asp.net控件分析 (一)
举报原因:
原因补充:

(最多只允许输入30个字)