我有一个Control
的子类。这是ColorPicker
。我有以下属性:
Private _Color As String
Public Property Color As String
Get
Return _Color
End Get
Set(value As String)
_Color = value
End Set
End Property
我有一个Page_Init
事件,其中包含控件的初始化:
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
我有一个OnInit事件用于控件:
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
问题是Color
属性在input.Value
初始化之前用于初始化Property
。我试图将内容放入OnPreRender
,但这阻止了Control
呈现。所以,我的问题是关于应该在控件中添加输入的位置,应该在控件代码中初始化input.Value
的位置以及应该设置Color属性的位置。
答案 0 :(得分:-1)
尝试使用Page_Load,这可以满足您的要求。