S
shapper
Hi,
I created my first custom control.
I don't get any error when I use it but it doesn't show anything.
Could someone tell me if I am doing something wrong in my custom
control?
I am sure is something simple which I don't know.
Thanks,
Miguel
Here is my custom control code:
' -- [Import Namespaces] -------------------------------------------
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
' -- [Namespaces] -------------------------------------------
' Web
Namespace Web
' -- [Classes] -------------------------------------------
<DefaultProperty("Text"), ToolboxData("<{0}:Message
runat=server></{0}:Message>")> _
Public Class Message
Inherits WebControl
' -- [Properties] -------------------------------------------
' ImagePosition
<Bindable(True), Category("Layout"), DefaultValue(""),
Localizable(True)> Property ImagePosition() As String
Get
Dim pImagePosition As String = CStr(ViewState("ImagePosition"))
If pImagePosition Is Nothing Then
Return String.Empty
Else
Return pImagePosition
End If
End Get
Set(ByVal Value As String)
ViewState("ImagePosition") = Value
End Set
End Property
' ImageUrl
<Bindable(True), Category("Appearance"), DefaultValue(""),
Localizable(True)> Property ImageUrl() As String
Get
Dim pImageUrl As String = CStr(ViewState("ImageUrl"))
If pImageUrl Is Nothing Then
Return String.Empty
Else
Return pImageUrl
End If
End Get
Set(ByVal Value As String)
ViewState("ImageUrl") = Value
End Set
End Property
' Text
<Bindable(True), Category("Font"), DefaultValue(""),
Localizable(True)> Property Text() As String
Get
Dim pText As String = CStr(ViewState("Text"))
If pText Is Nothing Then
Return String.Empty
Else
Return pText
End If
End Get
Set(ByVal Value As String)
ViewState("Text") = Value
End Set
End Property
' -- [Functions] -------------------------------------------
' Render contents
Protected Overrides Sub RenderContents(ByVal output As
HtmlTextWriter)
End Sub
' Create Child Controls
Protected Overrides Sub CreateChildControls()
' Create child controls
Dim iIcon As New Image
Dim lText As New Label
Dim pMessage As New Panel
Dim pText As New Panel
' Define iIcon properties
With iIcon
.ImageUrl = Me.ImageUrl
.ID = "iIcon"
.Style.Add("float", "left")
End With
' Define lText properties
With lText
.ID = "lText"
.Text = Me.Text
End With
' Define pMessage properties
With pMessage
.ID = "pMessage"
.Width = Me.Width
End With
' Define pText properties
With pText
.ID = "pText"
.Style.Add("float", "left")
End With
' Add child controls
Me.Controls.Add(pMessage)
pMessage.Controls.Add(iIcon)
pMessage.Controls.Add(pText)
pText.Controls.Add(lText)
' Create child controls
MyBase.CreateChildControls()
Me.ChildControlsCreated = True
End Sub
End Class
End Namespace
I created my first custom control.
I don't get any error when I use it but it doesn't show anything.
Could someone tell me if I am doing something wrong in my custom
control?
I am sure is something simple which I don't know.
Thanks,
Miguel
Here is my custom control code:
' -- [Import Namespaces] -------------------------------------------
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
' -- [Namespaces] -------------------------------------------
' Web
Namespace Web
' -- [Classes] -------------------------------------------
<DefaultProperty("Text"), ToolboxData("<{0}:Message
runat=server></{0}:Message>")> _
Public Class Message
Inherits WebControl
' -- [Properties] -------------------------------------------
' ImagePosition
<Bindable(True), Category("Layout"), DefaultValue(""),
Localizable(True)> Property ImagePosition() As String
Get
Dim pImagePosition As String = CStr(ViewState("ImagePosition"))
If pImagePosition Is Nothing Then
Return String.Empty
Else
Return pImagePosition
End If
End Get
Set(ByVal Value As String)
ViewState("ImagePosition") = Value
End Set
End Property
' ImageUrl
<Bindable(True), Category("Appearance"), DefaultValue(""),
Localizable(True)> Property ImageUrl() As String
Get
Dim pImageUrl As String = CStr(ViewState("ImageUrl"))
If pImageUrl Is Nothing Then
Return String.Empty
Else
Return pImageUrl
End If
End Get
Set(ByVal Value As String)
ViewState("ImageUrl") = Value
End Set
End Property
' Text
<Bindable(True), Category("Font"), DefaultValue(""),
Localizable(True)> Property Text() As String
Get
Dim pText As String = CStr(ViewState("Text"))
If pText Is Nothing Then
Return String.Empty
Else
Return pText
End If
End Get
Set(ByVal Value As String)
ViewState("Text") = Value
End Set
End Property
' -- [Functions] -------------------------------------------
' Render contents
Protected Overrides Sub RenderContents(ByVal output As
HtmlTextWriter)
End Sub
' Create Child Controls
Protected Overrides Sub CreateChildControls()
' Create child controls
Dim iIcon As New Image
Dim lText As New Label
Dim pMessage As New Panel
Dim pText As New Panel
' Define iIcon properties
With iIcon
.ImageUrl = Me.ImageUrl
.ID = "iIcon"
.Style.Add("float", "left")
End With
' Define lText properties
With lText
.ID = "lText"
.Text = Me.Text
End With
' Define pMessage properties
With pMessage
.ID = "pMessage"
.Width = Me.Width
End With
' Define pText properties
With pText
.ID = "pText"
.Style.Add("float", "left")
End With
' Add child controls
Me.Controls.Add(pMessage)
pMessage.Controls.Add(iIcon)
pMessage.Controls.Add(pText)
pText.Controls.Add(lText)
' Create child controls
MyBase.CreateChildControls()
Me.ChildControlsCreated = True
End Sub
End Class
End Namespace