Я хочу, чтобы мой пользовательский элемент управления мог иметь в нем литеральный контент. Для примера:Пользовательский контроль ASP.NET - шаблон, допускающий литературные данные
<fc:Text runat="server">Please enter your login information:</fc:Text>
В настоящее время код для моего пользовательского элемента управления является:
<ParseChildren(True, "Content")> _
Partial Public Class ctrFormText
Inherits UserControl
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
И когда я положил текст внутри этого элемента управления (например, выше) я получаю эту ошибку:
Parser Error Message: Literal content ('Please enter your login information to access CKMS:') is not allowed within a 'System.Collections.ArrayList'.
Этот элемент управления может иметь другой контент, а не только текст, поэтому свойство Content атрибут не решит мою проблему.
Я нашел в некоторых местах, что мне нужно реализовать класс ControlBuilder, а также другой класс, который реализует IParserAccessor.
В любом случае, я просто хочу, чтобы мое свойство по умолчанию «Содержимое» имело в своем распоряжении все типы элементов управления, как литеральные, так и фактические.