用户控制事件

时间:2010-02-22 15:36:30

标签: c# asp.net user-controls event-handling

我有一个用户控件,其中有一个名为upload的按钮。按钮单击事件如下所示:

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

在存在用户控件的页面上,在用户点击上传按钮后,我想在用户控件中执行按钮点击事件代码后立即执行某些操作。如何在完成工作后点击点击事件?

3 个答案:

答案 0 :(得分: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 :(得分:0)

在UserControl的CodeBehind中创建一个公共属性:

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

然后在page_Load上你可以使用它:

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

答案 2 :(得分:0)

您可以使用显式事件实现直接将事件连接在一起,而不是仅仅为了调用另一个事件而编写事件处理程序:

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

现在,任何订阅了您的ButtonClicked活动的人实际上都是直接订​​阅Click控件的btnUpload事件。我发现这是一种更为简洁的实现方式。