하위 클래스가 Control
입니다. 이것은 ColorPicker
입니다. 내가 컨트롤의 초기화가 포함 된 Page_Init
이벤트가OnInit을 실행하기 전에 asp.net 이벤트에서 속성을 설정하십시오.
Private _Color As String
Public Property Color As String
Get
Return _Color
End Get
Set(value As String)
_Color = value
End Set
End Property
:
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
을 나는 그것을 위해 다음과 같은 속성이 있습니다
이 초기화되기 전에 속성이 input.Value
초기화에 사용되는 것이 문제입니다. OnPreRender
에 물건을 넣으려고했으나 Control
이 렌더링되지 않았습니다. 그래서, 내 질문에 어디에 입력을 컨트롤에 추가해야합니다 장소, 어디 input.Value
제어 코드 및 Color 속성을 설정해야합니다 장소에서 초기화해야합니다.
ASPX 페이지에 입력 값을 추가하여 컨트롤에 입력 매개 변수를 전달하는 데 사용되었습니다. '''; 네가 똑같은 지 모르겠다 !! –
techspider
값은 데이터베이스에서 읽습니다. 코드 작성시 색상을 미리 결정할 수있는 방법은 없습니다. –
'제어 클래스 '의'생성자'는 어떨까요? 나는 그곳의 컨트롤에 실제 커스터마이즈를 추가했다! – techspider