1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports ASP = System.Web.UI.WebControls
Imports System.IO
Namespace CustomControl
<DefaultProperty("Text"), ToolboxData("<{0}:CustomTreeView runat=server></{0}:CustomTreeView>")> _
Public Class CustomTreeView
Inherits ASP.TreeView
Implements IPostBackEventHandler
Public Event CheckClick As EventHandler
<Bindable(True), Category("Appearance"), DefaultValue(""), Localizable(True)> Property Text() As String
Get
Dim s As String = CStr(ViewState("Text"))
If s Is Nothing Then
Return String.Empty
Else
Return s
End If
End Get
Set(ByVal Value As String)
ViewState("Text") = Value
End Set
End Property
Protected Overrides Sub Render(ByVal output As HtmlTextWriter)
Dim builder As StringBuilder = New StringBuilder
Dim stringWriter As StringWriter = New StringWriter(builder)
Dim tempWriter As HtmlTextWriter = New HtmlTextWriter(stringWriter)
MyBase.Render(tempWriter)
Dim find As String = "<input type=""checkbox"""
Dim replace As String = "<input type=""checkbox"" onClick=""" & getPostBack() & """"
output.Write(builder.ToString().Replace(find, replace))
End Sub
Protected Function getPostBack() As String
Return Me.Page.GetPostBackEventReference(Me, "@CheckBox")
End Function
Protected Overrides Sub OnTreeNodeCheckChanged(ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs)
RaiseEvent CheckClick(Me, e)
MyBase.OnTreeNodeCheckChanged(e)
End Sub
End Class
End Namespace |
Partager