1
我希望我的用戶控件能夠在其中包含文字內容。例如: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。
無論如何,我只是希望我的默認「內容」屬性具有允許在其中的所有類型的控件,包括文字和實際控件。