2010-02-22 102 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

在用戶控件的代碼隱藏創建一個公共屬性:

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事件。我覺得這是一個更簡潔的方式來實現這一點。