2010-02-22 6 views
6

У меня есть пользовательский элемент управления с кнопкой с именем upload. Событие нажатия кнопки выглядит следующим образом:События управления пользователями

protected void btnUpload_Click(object sender, EventArgs e) 
{ 
    // Upload the files to the server 
} 

На странице, где пользовательский элемент управления присутствует, после того, как пользователь нажимает на кнопку загрузки, я хочу, чтобы выполнить какую-то операцию сразу же после того, как код события нажатия кнопки выполняется в пользовательский контроль. Как я могу нажать на событие щелчка после того, как он завершил свою работу?

ответ

8

Вы должны создать событие в своем пользовательском элементе управления, что-то вроде:

public event EventHandler ButtonClicked; 

, а затем в методе пожара событий ...

protected void btnUpload_Click(object sender, EventArgs e) 
{ 
    // Upload the files to the server 

    if(ButtonClicked!=null) 
     ButtonClicked(this,e); 
} 

Тогда вы сможете прикрепить к событию ButtonClicked вашего пользовательского элемента управления.

+1

И затем убедитесь, что Страница, содержащая usercontrol, прослушивает событие .... this.myUploadControl.ButtonClicked + = new EventHandler (MyUploadControl_ButtonClicked); Где MyUploadControl_ButtonClicked объявлен в классе Page как обработчик события. –

0

Создание общественной собственности в CodeBehind UserControl в:

public Button btn 
    { 
     get { return this.Button1; } 
    } 

Тогда на Page_Load вы можете использовать его как:

WebUserControl11.btn.Click += (s, ea) => { Response.Write("Page Write"); }; 
0

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

public event EventHandler ButtonClicked 
{ 
    add { btnUpload.Click += value; } 
    remove { btnUpload.Click -= value; } 
} 

Теперь любой, кто подписывается на ваше событие ButtonClicked, фактически подписывается на событие Click управления btnUpload. Я считаю, что это гораздо более сжатый способ реализовать это.

Смежные вопросы