Set Attribuet på User Control ved dynamisk tilføjelse
Jeg har en class hvor følgende Custom Control:-------------------------------------
'Insert Text - Custom Control
Public Shared Function InsertTextCC(ByVal ElementID As Integer) As Control
Dim TextControl As New CMSElements.Text.TextControl
'Set Control properties
TextControl.ID = ElementID
TextControl.Content = "Tekst til Custom Control"
Return TextControl
End Function
-------------------------------------
Blvier tilføjet til en ContentPlaceHolder på en MasterPage, med denne funktion:
-------------------------------------
Public Shared Function AddControlToContentPlaceHolder(ByVal ElementID As Integer, ByVal ContentPlaceHolder As ContentPlaceHolder, ByVal CacheExpires As Integer) As Boolean
Dim AddAtIndex As Integer
'Index the control is added to (order of elements)
AddAtIndex = 1
Dim ControlToAdd As Control 'BasePartialCachingControl
'TextElement
ControlToAdd = CMS.InsertTextUC(ElementID)
'Set when cache expires
'ControlToAdd.CachePolicy.SetExpires(DateTime.Now.Add(TimeSpan.FromSeconds(CacheExpires)))
ContentPlaceHolder.Controls.AddAt(AddAtIndex, ControlToAdd)
End Function
-------------------------------------
Hvilket virker fint. Men hvis jeg vil gøre det samme med en User Control, kan jeg ikke få den til at acceptere atributten "Content":
-------------------------------------
'Insert Text - User Control
Public Shared Function InsertTextUC(ByVal ElementID As Integer) As Control
'Load Text UserControl
Dim TextControl As Control = mMasterPage.LoadControl("~/UserControls/Elements/Text.ascx")
'Set Control properties
TextControl.ID = ElementID
'TextControl.Content = "Tekst til User Control"
Return TextControl
End Function
-------------------------------------
VB koden til User Controlen ser ud som følger:
-------------------------------------
Imports System.Web.UI.WebControls
'<PartialCaching(0)> _
Partial Class UserControls_Elements_Text
Inherits System.Web.UI.UserControl
Private mContent As String = "Test text 123"
Public Property Content() As String
Get
Return (mContent)
End Get
Set(ByVal value As String)
mContent = value
End Set
End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
TextLiteral.Text = mContent
LoadTime.Text = Now()
'Me.CachePolicy.SetExpires(DateTime.Now.Add(TimeSpan.FromSeconds(5)))
End Sub
End Class
-------------------------------------
Hvordan får jeg sat atributten på User Controlen, når jeg tilføjer den?
