ASP.NET Custom Control - Template Allowing Literal Content

Posted by Bob Fincheimer on Stack Overflow See other posts from Stack Overflow or by Bob Fincheimer
Published on 2010-06-16T18:09:00Z Indexed on 2010/06/16 18:12 UTC
Read the original article Hit count: 166

Filed under:
|
|

I want my User Control to be able to have Literal Content inside of it. For Example:

<fc:Text runat="server">Please enter your login information:</fc:Text>

Currently the code for my user control is:

<ParseChildren(True, "Content")> _
Partial Public Class ctrFormText
    Inherits FormControl

    Private _content As ArrayList
    <PersistenceMode(PersistenceMode.InnerDefaultProperty), _
    DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _
    TemplateInstance(TemplateInstance.Single)> _
    Public Property Content() As ArrayList
        Get
            If _content Is Nothing Then
                Return New ArrayList
            End If
            Return _content
        End Get
        Set(ByVal value As ArrayList)
            _content = value
        End Set
    End Property

    Protected Overrides Sub CreateChildControls()
        If _content IsNot Nothing Then
            ctrChildren.Controls.Clear()
            For Each i As Control In _content
                ctrChildren.Controls.Add(i)
            Next
        End If
        MyBase.CreateChildControls()
    End Sub
End Class

And when I put text inside this control (like above) i get this error:

Parser Error Message: Literal content ('Please enter your login information to access CKMS:') is not allowed within a 'System.Collections.ArrayList'.

This control could have other content than just the text, so making the Content property an attribute will not solve my problem.

I found in some places that I need to implement a ControlBuilder Class, along with another class that implements IParserAccessor.

Anyway I just want my default "Content" property to have all types of controls allowed in it, both literal and actual controls.

© Stack Overflow or respective owner

Related posts about ASP.NET

Related posts about vb.net