上一篇分析了自訂控制項的基本文法。這次編寫一控制項來作為執行個體。
在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下載地址。