2016-06-22 10 views
0

하위 클래스가 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 속성을 설정해야합니다 장소에서 초기화해야합니다.

+0

ASPX 페이지에 입력 값을 추가하여 컨트롤에 입력 매개 변수를 전달하는 데 사용되었습니다. '''; 네가 똑같은 지 모르겠다 !! – techspider

+0

값은 데이터베이스에서 읽습니다. 코드 작성시 색상을 미리 결정할 수있는 방법은 없습니다. –

+1

'제어 클래스 '의'생성자'는 어떨까요? 나는 그곳의 컨트롤에 실제 커스터마이즈를 추가했다! – techspider

답변

-1

Page_Load를 사용해보십시오. 요구 사항과 함께 사용할 수 있습니다.

+0

Page_Load는 Page_Init보다 늦어도 실행될 것이고 Page_Init도 너무 늦기 때문에 그럴 지 모르겠습니다. –

+0

색상을로드로 설정해보십시오. 모든 속성이 올바르게로드되었을 것입니다. – MoustafaS

+0

MoustafaS, 당신이 나에게 그것을 시도했지만, 당신이 기대 한 결과를 얻지 못했기 때문에. 이것은 Page_Init이 할당을 너무 늦게 실행하고 Page_Load가 나중에 실행된다는 것입니다. –