我已经构建了一个自定义控件类,可以更轻松地在我的html中构建侧栏元素。
我遇到的问题是,当我设置“Text”属性时,我最后一次设置它会被用于我页面上每个控件实例。这是我第一次这样做,所以我假设我错过了一些基本的东西。
Namespace CustomControl
Public Class SideBarElement : Inherits Literal
''' <summary>
''' Create Copyright Label
''' </summary>
''' <remarks></remarks>
Protected Overrides Sub CreateChildControls()
MyBase.Text = RenderHTML()
MyBase.CreateChildControls()
End Sub
''' <summary>
''' Set all copyright information.
''' </summary>
Public Shared Function RenderHTML() As String
Dim val As String
val = "<div class=""side-bar-container"">" & _
"<div class=""side-bar-top"">" & _
"</div>" & _
" <div class=""side-bar-content"">" & _
_Text & _
"</div>" & _
"<div class=""side-bar-bottom"">" & _
"</div>" & _
"</div>"
Return val
End Function
''' <summary>
''' Create Text Property
''' </summary>
''' <remarks></remarks>
Private Shared _Text As String = String.Empty
Public Shadows Property Text() As String
Get
Return _Text
End Get
Set(ByVal value As String)
_Text = value
End Set
End Property
End Class
结束命名空间
使用此控件应该看起来像这样。
<sidebar:SideBarElement ID="SideBarElement1" runat="server">
Bla Bla</br>My Fun Content.</sidebar:SideBarElement>
非常感谢任何帮助。
答案 0 :(得分:0)
删除Text和_Text属性解决了这个问题。文字控件已经内置了这些属性,因此我不需要覆盖它们。
Namespace CustomControl
Public Class SideBarElement : Inherits Literal
''' <summary>
''' Create Copyright Label
''' </summary>
''' <remarks></remarks>
Protected Overrides Sub CreateChildControls()
MyBase.Text = "<div class=""side-bar-container"">" & _
"<div class=""side-bar-top""></div>" & _
"<div class=""side-bar-content"">" & _
Text & _
"</div>" & _
"</div>"
MyBase.CreateChildControls()
End Sub
End Class
结束命名空间