`

自定义asp.net控件分析

阅读更多

下面就以,.net自动生成的模版做一解释。(以vb语言为例)<!----><o:p></o:p>

1.Imports System.ComponentModel<o:p></o:p>

2.Imports System.Web.UI<o:p></o:p>

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

4.    Inherits System.Web.UI.WebControls.WebControl<o:p></o:p>

5.    Dim _text As String<o:p></o:p>

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

7.         Get<o:p></o:p>

8.            Return _text<o:p></o:p>

9.         End Get<o:p></o:p>

10.        Set(ByVal Value As String)<o:p></o:p>

11.            _text = Value<o:p></o:p>

12.        End Set<o:p></o:p>

13.    End Property<o:p></o:p>

14.    Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)<o:p></o:p>

15.        output.Write([Text])<o:p></o:p>

16.    End Sub<o:p></o:p>

17.End Class<o:p></o:p>

'---------------------------------------------------------------<o:p></o:p>

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

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

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

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

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

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

Public Class WebCustomControl1定义类名为webcustomcontrol1,以后编译生成的dll名为webcustomtrol1<o:p></o:p>

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

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

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

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

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

Property [Text]() As String定义 text属性 为字符串类型<o:p></o:p>

Bindable(True)指定是否要绑定到该属性。-True为是,False为不<o:p></o:p>

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

DefaultValue("")为属性设置一个简单的默认值。这里为空<o:p></o:p>

下面列出所有的特性<o:p></o:p>

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

 <o:p></o:p>

 <o:p></o:p>

属性<o:p></o:p>

应用于<o:p></o:p>

说明<o:p></o:p>

BrowsableAttribute<o:p></o:p>

属性和事件<o:p></o:p>

指定属性或事件是否应该显示在属性浏览器中。<o:p></o:p>

CategoryAttribute<o:p></o:p>

属性和事件<o:p></o:p>

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

DescriptionAttribute<o:p></o:p>

属性和事件<o:p></o:p>

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

BindableAttribute<o:p></o:p>

属性<o:p></o:p>

指定是否要绑定到该属性。<o:p></o:p>

DefaultPropertyAttribute<o:p></o:p>

属性

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

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

DefaultValueAttribute<o:p></o:p>

属性<o:p></o:p>

为属性设置一个简单的默认值。<o:p></o:p>

EditorAttribute <o:p></o:p>

属性<o:p></o:p>

指定在可视设计器中编辑(更改)属性时要使用的编辑器。<o:p></o:p>

LocalizableAttribute<o:p></o:p>

属性<o:p></o:p>

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

DesignerSerializationVisibilityAttribute <o:p></o:p>

属性<o:p></o:p>

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

TypeConverterAttribute <o:p></o:p>

属性<o:p></o:p>

指定将属性的类型转换为另一个数据类型时要使用的类型转换器。<o:p></o:p>

DefaultEventAttribute<o:p></o:p>

事件

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

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

 <o:p></o:p>

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

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

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

13 Text属性的结束<o:p></o:p>

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

 <o:p></o:p>

asp.net中当你想对buttonclick事件做确认操作,但Button按钮不能满足此要求。就针对此要求来编写自己的控件。

======================================================================

继承:System.Web.UI.WebControls.Button

控件功能:弹出确认消息框

控件属性:message(消息框中显示的信息)

控件方法:不需要

控件事件:不需要

使用方法:“确定”执行按钮的button_click事件,“取消”不执行任何事件。

Imports System.ComponentModel<o:p></o:p>

Imports System.Web.UI<o:p></o:p>

 <o:p></o:p>

Namespace WebControls<o:p></o:p>

 <o:p></o:p>

    <DefaultProperty("Text"), ToolboxData("<{0}:ConfirmButton runat=server></{0}:ConfirmButton>")> Public Class ConfirmButton<o:p></o:p>

         '继承button<o:p></o:p>

        Inherits System.Web.UI.WebControls.Button<o:p></o:p>

        '为其所包含的任何服务器控件提供唯一的命名空间<o:p></o:p>

        Implements INamingContainer<o:p></o:p>

        Dim _Message As String<o:p></o:p>

        '定义message属性。<o:p></o:p>

        <Bindable(True), Category("Appearance"), DefaultValue("")> Property [Message]() As String<o:p></o:p>

            Get<o:p></o:p>

                Return _Message<o:p></o:p>

            End Get<o:p></o:p>

            Set(ByVal Value As String)<o:p></o:p>

                _Message = Value<o:p></o:p>

            End Set<o:p></o:p>

        End Property<o:p></o:p>

 <o:p></o:p>

        Public Sub New()<o:p></o:p>

            _Message = ""<o:p></o:p>

        End Sub<o:p></o:p>

'重写控件的输出<o:p></o:p>

        Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)<o:p></o:p>

           '为控件增加客户端onclick事件。<o:p></o:p>

            If Me.Message.Trim <> "" Then Me.Attributes.Add("onClick", "jscript:if(!confirm('" & Me.Message & "')) return false;")<o:p></o:p>

            Me.Attributes.Add("onFocus", "jscript:this.blur();")<o:p></o:p>

            MyBase.Render(output)<o:p></o:p>

        End Sub<o:p></o:p>

    End Class<o:p></o:p>

End Namespace<o:p></o:p>

分享到:
评论

相关推荐

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

    用户控件是ASP.NET中的基本自定义UI元素,它是通过将多个标准ASP.NET控件组合在一起,形成一个复合控件来实现的。用户控件可以看作是网页的微型版,具有自己的HTML、服务器控件和脚本。创建用户控件的主要步骤包括:...

    自定义asp.net翻页控件

    总的来说,自定义ASP.NET翻页控件是提升网页数据展示效率的有效手段,它可以按照特定的需求进行定制,以满足各种复杂的分页场景。通过深入理解ASP.NET控件的原理和机制,开发者可以创建出更加高效、易用的自定义控件...

    asp.net控件笔记 asp.net控件笔记

    ASP.NET控件是微软.NET Framework框架中用于构建Web应用程序的核心元素。这些控件提供了一种简单的方法来构建交互式、动态的网页。本笔记将深入探讨ASP.NET控件的各个方面,帮助开发者更好地理解和使用这些工具。 ...

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

    总的来说,创建ASP.NET自定义抽屉控件需要深入理解ASP.NET控件生命周期、HTML渲染机制、客户端脚本交互以及CSS样式设计。掌握这些技能不仅可以帮助你构建更丰富的用户界面,还能提高开发效率和代码的可维护性。

    ASP.Net控件开发基础资料

    这些资料涵盖了从基础知识到高级技巧,帮助开发者深入理解ASP.NET控件的工作原理以及如何自定义它们。以下是对这些资源的详细解读: 1. **ASP.NET控件开发基础**: 这一系列文章(如asp_net控件开发基础(1) - ...

    ASP.NET控件开发

    本实例代码集合提供了一种快速学习和实践控件开发的方法,对于想要深入理解ASP.NET控件工作原理和定制自定义控件的开发者来说极具价值。 在ASP.NET中,控件大致分为两种类型:服务器控件和HTML控件。服务器控件具有...

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

    ASP.NET自定义控件是.NET框架中用于构建可重用、可扩展的用户界面组件的重要技术。本实例教程旨在引导开发者深入理解并掌握这一技术,通过一系列由浅入深的例子,帮助你创建从简单到复杂的数据绑定控件。 首先,...

    asp.net 控件重绘 加载自己的css

    ASP.NET控件重绘是一种技术,允许开发者自定义.NET控件的外观,使其与网站的样式和主题保持一致。在标题“asp.net 控件重绘 加载自己的css”中,核心概念是通过加载自定义的CSS(层叠样式表)文件来改变ASP.NET控件...

    asp.net控件练习

    ASP.NET控件是构建Web应用程序的核心元素,它们提供了一种直观的方式来交互和处理用户输入。在ASP.NET中,控件可以分为服务器控件、HTML控件和Web自定义控件等类型。本练习主要涵盖了ASP.NET中的多种控件及其应用,...

    asp.net 自定义控件源码

    通过分析提供的源码,我们可以学习到如何根据具体需求,利用ASP.NET框架创建具有特定功能的自定义控件,这对于提升开发者的技术水平和创新能力至关重要。 总结起来,这个压缩包提供了一个学习和实践ASP.NET自定义...

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

    这些控件可以扩展内置的ASP.NET控件功能,或者完全创新地构建全新的UI组件。"asp.net 自定义控件 上图文件控件"指的是一个特别的自定义控件,它用于处理文件上传操作,同时还具有进度显示和时间跟踪的功能,这为用户...

    ASP.NET控件开发教程

    ASP.NET控件开发是Web应用程序开发中的核心组成部分,它允许开发者构建交互性强、功能丰富的用户界面。本教程针对初学者,旨在提供一个全面的ASP.NET控件开发基础,帮助你快速掌握这一技术。 1. **ASP.NET控件基础*...

    Asp.net 控件大全

    本篇文章将深入探讨Asp.NET控件大全,旨在为开发者提供一个全面的理解和参考。 1. **服务器控件**: Asp.NET的核心在于服务器控件,它们在服务器端处理事件并生成HTML发送到客户端。常见的服务器控件包括: - **...

    Asp.Net开发控件

    随着技术的发展,Asp.Net控件库也在不断更新和完善,不仅包含了传统的WebForms控件,还扩展到了MVC框架。 在Asp.Net WebForms中,开发者可以使用诸如Button、TextBox、Label、DropDownList、GridView等常见控件。...

    ASP.net控件

    ASP.NET控件是微软开发的Web应用程序框架ASP.NET的重要组成部分,用于构建动态、交互式的网页。这些控件提供了一种直观的方式来创建用户界面,并且在服务器端处理用户的输入和交互。"ASP.NET控件大全"可能包含了一...

    .net控件开发实例

    本教程将深入探讨ASP.NET控件开发的一些实例,特别关注那些相对简单但实用的自定义控件。 一、ASP.NET控件基础 在ASP.NET中,控件分为服务器控件和HTML控件两类。服务器控件如Label、Button、TextBox等,具有丰富的...

    asp.net 自定义下拉多选控件

    二、ASP.NET控件自定义 在ASP.NET中,我们可以通过继承现有的WebControl或CompositeControl基类来自定义控件。自定义下拉多选控件可能包含以下几个关键部分: 1. 用户界面:通过HTML和CSS构建下拉框的外观,同时...

    ASP.NET控件与组件开发

    ASP.NET控件与组件开发是Web开发领域中的一个重要主题,主要涉及如何在ASP.NET框架下创建和使用自定义的服务器控件以及组件。这门教程深入浅出地讲解了这一技术,适合对ASP.NET有一定基础的开发者进行进一步的学习和...

    asp.net GridView自定义控件源码

    ASP.NET GridView 是一个非常...为了更好地利用这个源码,你需要理解ASP.NET控件生命周期,了解数据绑定机制,以及如何在代码-behind中操作控件。同时,熟悉CSS和HTML也是必要的,因为美化部分很可能是通过CSS完成的。

    3D饼图 ASP.NET控件

    在ASP.NET控件中,这类图表通常提供多种样式和颜色选项,可以自定义轴标签、图例和数据标签,以满足各种需求。使用这种图表,用户可以清楚地看到各分类的相对值,便于分析和决策。 折线图则是另一种常用的可视化...

Global site tag (gtag.js) - Google Analytics