Ich habe eine Unterklasse von Control
. Dies ist ein ColorPicker
. Ich habe die folgende Eigenschaft für sie:ASP.NET-Ereignis zum Festlegen der Eigenschaft vor OnInit ausgeführt wird
Private _Color As String
Public Property Color As String
Get
Return _Color
End Get
Set(value As String)
_Color = value
End Set
End Property
Ich habe ein Page_Init
Ereignis, das die Initialisierung der Steuerung enthält:
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
'...
If (maintType.FontColor IsNot Nothing) Then
colorPicker.Color = maintType.FontColor
End If
'...
End Sub
Und ich habe ein OnInit Ereignis für das Steuerelement:
Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
input = New HtmlInputHidden()
input.Attributes.Add("class", "hidden-color-value")
Dim picker = New HtmlGenericControl("div")
picker.Attributes.Add("class", "picker-color-value")
picker.Style.Add("width", "220px")
picker.Style.Add("height", "220px")
Dim selectedColor = New HtmlGenericControl("div")
selectedColor.Style.Add("width", "100px")
selectedColor.Style.Add("height", "100px")
selectedColor.Style.Add("margin-top", "50px")
selectedColor.Style.Add("background-color", input.Value)
selectedColor.Attributes.Add("class", "selected-color")
input.Value = If(Color Is Nothing, "#000000", Color)
Me.Controls.Add(input)
Me.Controls.Add(picker)
Me.Controls.Add(selectedColor)
MyBase.OnInit(e)
End Sub
Das Problem ist, dass die Color
Eigenschaft für die Initialisierung von input.Value
verwendet wird, bevor die Property
initialisiert wird. Ich habe versucht, Sachen in OnPreRender
zu setzen, aber das verhinderte das Control
von der Wiedergabe. Meine Frage bezieht sich also auf die Stelle, an der die Eingabe den Steuerelementen hinzugefügt werden soll, die Stelle, an der input.Value
im Steuercode initialisiert werden soll, und die Stelle, an der die Color-Eigenschaft festgelegt werden soll.
Ich habe Input-Parameter zu Controls übergeben, indem ich diese Werte in der ASPX-Seite hinzufüge; ' '; Ich bin mir nicht sicher, ob du das gleiche hast !! –
techspider
Der Wert wird aus der Datenbank gelesen. Es gibt keine Möglichkeit, die Farbe beim Codeschreiben vorzubestimmen. –
Wie wäre es mit 'Konstruktor' Ihrer' Kontrollklasse'? Ich habe etwas echte Anpassung an die Kontrolle dort drüben hinzugefügt !! – techspider