Control Problem

Discussion in 'ASP .Net Building Controls' started by shapper, Oct 10, 2006.

  1. shapper

    shapper Guest

    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
     
    shapper, Oct 10, 2006
    #1
    1. Advertising

  2. After a quick glance it looks like your RenderContents method is empty:

    ' Render contents
    Protected Overrides Sub RenderContents(ByVal output As
    HtmlTextWriter)

    End Sub

    You shouldn't override this if you're not doing anything, or call
    base.RenderContents (that's the c# syntax, not sure about vb).
    Internally RenderContents usually calls base.Render which actually does
    the writing of HTML.

    Michael Hamrah



    On Oct 10, 6:25 pm, "shapper" <> wrote:
    > 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
     
    Michael Hamrah, Oct 10, 2006
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    0
    Views:
    749
  2. Matthew Louden
    Replies:
    1
    Views:
    7,114
    Scott M.
    Oct 11, 2003
  3. Mad Scientist Jr
    Replies:
    0
    Views:
    682
    Mad Scientist Jr
    Mar 22, 2006
  4. shapper
    Replies:
    6
    Views:
    982
    shapper
    Dec 26, 2007
  5. Jonathan Wood

    User Control to Control Other User Control

    Jonathan Wood, Jan 24, 2010, in forum: ASP .Net
    Replies:
    4
    Views:
    585
    Jonathan Wood
    Feb 2, 2010
Loading...

Share This Page