2010-02-22 33 views
6

Tôi có quyền kiểm soát người dùng bằng nút có tên tải lên trong đó. Sự kiện nhấn nút trông như thế này:Sự kiện kiểm soát người dùng

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

Trên trang nơi điều khiển người dùng là hiện nay, sau khi người dùng nhấp vào nút tải lên Tôi muốn thực hiện một số hoạt động ngay sau khi mã kiện nhấn nút được thực hiện trong Kiểm soát người dùng. Làm cách nào để nhấn vào sự kiện nhấp sau khi sự kiện đã hoàn thành?

Trả lời

8

Bạn phải tạo một sự kiện trong điều khiển người dùng của bạn, một cái gì đó như:

public event EventHandler ButtonClicked; 

và sau đó trong phương pháp lửa của bạn sự kiện ...

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

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

Sau đó, bạn sẽ có thể đính kèm cho sự kiện ButtonClicked trong điều khiển người dùng của bạn.

+1

Và sau đó đảm bảo rằng Trang chứa usercontrol đang nghe sự kiện .... this.myUploadControl.ButtonClicked + = new EventHandler (MyUploadControl_ButtonClicked); Trường hợp MyUploadControl_ButtonClicked được khai báo trong lớp Page dưới dạng trình xử lý sự kiện. –

0

Tạo một tài sản công cộng trong CodeBehind UserControl của:

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

Sau đó, trên Page_Load bạn có thể sử dụng nó như:

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

Thay vì viết một event handler chỉ để gọi sự kiện khác, bạn có thể thay kết nối trực tiếp các sự kiện với nhau bằng cách sử dụng triển khai sự kiện rõ ràng:

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

Hiện tại, bất kỳ ai đăng ký sự kiện ButtonClicked của bạn thực sự đang đăng ký trực tiếp sự kiện Click của điều khiển btnUpload. Tôi thấy đây là một cách ngắn gọn hơn để thực hiện điều này.

Các vấn đề liên quan