2013-05-15 5 views
0

У меня есть контроль с ImageButton:ручка управления пользовательского сервера событий нажмите

... 
    ImageButton btn; 

    public MyControl() 
    { 
     btn = new ImageButton();  
    } 

    protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 
     Page.RegisterRequiresPostBack(this); 
    } 

    protected override void CreateChildControls() 
    { 

     btn.Height = Height; 
     btn.Width = Height; 

     btn.Click += new System.Web.UI.ImageClickEventHandler(RaiseLeftClickEvent); 
    } 

    private void RaiseLeftClickEvent(object sender, ImageClickEventArgs e) 
    { 
     throw new NotImplementedException(); 
    } 

Когда я нажал на кнопку Click событие не сработает.

ответ

2

Я думаю, что вы должны создать событие щелчка в OnInit объеме ..

protected override void OnInit(EventArgs e) 
{ 
    base.OnInit(e); 
    Page.RegisterRequiresPostBack(this); 
    base.CreateChildControls(); 
    btn.Click += new System.Web.UI.ImageClickEventHandler(RaiseLeftClickEvent); 
} 

UPDATE:

Первый класс, базовый класс управления должен быть WebControl.

А также OnInit сферы определить событие баттона:

protected override void OnInit(EventArgs e) 
{ 
    base.OnInit(e); 
    Page.RegisterRequiresControlState(this); 
    Controls.Clear(); 

    base.CreateChildControls(); 
    btn.Click += btnImageButton_Click; 
    Controls.Add(btn); 

} 


void btnImageButton_Click(object sender, EventArgs e) 
{ 
    //Handle Click event.. 
} 

Надеется, что это помогает ..

+0

это не помогает, но идея прямо –

+0

я думаю, есть вопрос о параметре RaiseLeftClickEvent. Вы уверены, что верно определение RaiseLeftClickEvent? –

+0

Этот метод был автогенерирован. –