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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
Imports System.Web.UI
Namespace WebControls.Common
<ParseChildren(True)> _
<PersistChildren(False)> _
Public Class Tab
Inherits CompositeControl
Implements INamingContainer
#Region "Attributs"
Private moOngletsList As BulletedList
Private moUpanContent As UpdatePanel
Private mnNumOngletActif As Byte
#End Region
#Region "Propriétés"
Private maOnglets As New List(Of Onglet)
<PersistenceMode(PersistenceMode.InnerProperty)> _
Public ReadOnly Property Onglets() As List(Of Onglet)
Get
Return maOnglets
End Get
End Property
#End Region
#Region "Evenements"
Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
EnsureChildControls()
mnNumOngletActif = 0
MyBase.OnInit(e)
End Sub
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
Dim loHlk As HyperLink
For Each loOnglet In Onglets
moUpanContent.ContentTemplateContainer.Controls.Add(loOnglet)
loHlk = New HyperLink() With {.Text = loOnglet.Title}
loHlk.Attributes.Add("PanID", loOnglet.ClientID)
moOngletsList.Controls.Add(loHlk)
Next
For i = 0 To Me.Onglets.Count - 1
If mnNumOngletActif <> i Then
Me.Onglets(i).Attributes.Add("style", "display: none")
End If
Next
End Sub
Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
MyBase.OnPreRender(e)
ScriptManager.RegisterClientScriptInclude( _
Me.Page _
, Me.Page.GetType _
, "onglet" _
, ResolveClientUrl("~/_Code/WebControl/Tab/Tab.js")
)
End Sub
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
ScriptManager.RegisterStartupScript( _
Me.Page _
, Me.Page.GetType() _
, "key" & Me.ClientID _
, "$(function() { $('#" & Me.ClientID & "').initTab(); });" _
, True
)
MyBase.Render(writer)
End Sub
#End Region
#Region "Méthodes"
Protected Overrides Sub CreateChildControls()
MyBase.CreateChildControls()
moOngletsList = New BulletedList() With {.CssClass = "tab"}
Me.Controls.Add(moOngletsList)
moUpanContent = New UpdatePanel() With {.ID = "upanOnglets", .ChildrenAsTriggers = False, .UpdateMode = UpdatePanelUpdateMode.Conditional}
moUpanContent.Attributes("style") = "clear:left"
Me.Controls.Add(moUpanContent)
Me.ChildControlsCreated = True
End Sub
#End Region
End Class
<ParseChildren(False)> _
<PersistChildren(True)> _
Public Class Onglet
Inherits CompositeControl
Private moPanContent As Panel
Private msTitle As String
Public Property Title() As String
Get
Return msTitle
End Get
Set(ByVal value As String)
msTitle = value
End Set
End Property
Protected Overrides Sub CreateChildControls()
MyBase.CreateChildControls()
Me.moPanContent = New Panel With {.CssClass = "tab-panel"}
Me.Controls.Add(Me.moPanContent)
End Sub
Protected Overrides Sub AddParsedSubObject(ByVal obj As Object)
EnsureChildControls()
moPanContent.Controls.Add(obj)
End Sub
End Class
End Namespace |
Partager