日期:2011-07-08  浏览次数:21013 次

上一篇分析了自定义控件的基本语法。这次编写一控件来作为实例。

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

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

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

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

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

控件方法:不需要

控件事件:不需要

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


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

Imports System.ComponentModel

Imports System.Web.UI

Namespace WebControls

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

         '继承button

        Inherits System.Web.UI.WebControls.Button

        '为其所包含的任何服务器控件提供唯一的命名空间

        Implements INamingContainer

        Dim _Message As String

        '定义message属性。

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

            Get

                Return _Message

            End Get

            Set(ByVal Value As String)

                _Message = Value

            End Set

        End Property

        Public Sub New()

            _Message = ""

        End Sub

'重写控件的输出

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

           '为控件增加客户端onclick事件。

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

            Me.Attributes.Add("onFocus", "jscript:this.blur();")

            MyBase.Render(output)

        End Sub

    End Class

End Namespace

到此,控件就编写完了,你看是不是很简单。


http://vip.6to23.com/moon15/controls/confirmbuttons.rar下载地址。