单击用户控件内的按钮后,专注于aspx页面内的用户控件

时间:2013-10-26 01:45:35

标签: asp.net

我在aspx页面内有一个用户控件,在aspx页面加载之后,当我点击该用户控件里面的一些按钮时,我想在完成按钮点击动作和aspx页面后重点回到用户控件再次加载。

1 个答案:

答案 0 :(得分:0)

您需要在用户控件中有一个事件,允许.aspx页面订阅该事件,以便在表单回发后可以将焦点设置为用户控件中的元素,如下所示:

public class UserControlClass
{
    // Define event that will be raised by user control to anyone interested in handling the event
    public event UC_Button1ClickEventHandler UC_Button1Click;
    public delegate void UC_Button1ClickEventHandler();

    // Mechanism to allow event to be raised by user control
    private void Button1_Click(System.Object sender, System.EventArgs e)
    {
        if (UC_Button1Click != null) 
        {
            UC_Button1Click();
        }
    }
}

现在在.aspx页面中,您需要在用户控件中订阅该事件,并说明实际处理该事件的方法,如下所示:

userControl1.UC_Button1Click += Button1_Click;

最后,click事件处理程序需要存在,如下所示:

public void Button1_Click(object sender, EventArgs args)
{
    // Set focus here to user control element, text box for example
    ((TextBox)userControl.FindControl("TextBox1")).Focus();
}