如何通过主aspx页面检测到usercontrol中的事件?

时间:2015-02-16 10:55:56

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

我怎样才能"冒泡"从用户控件到主页面的事件?但是,并不总是加载usercontrol,因为我在不同的用户控件中使用更新面板到ajax。

我找到this但是它假设usercontrol总是被加载?

编辑: 我查看了教程,但由于某种原因,事件工作需要两个。

这是要按下的按钮及其回调后面的代码

<asp:button runat="server" ID="profileSignOut" CssClass="btn btn-default" OnClick="profileSignOut_Click" Text="Sign Out"/>

protected void profileSignOut_Click(object sender, EventArgs e)
    {
        infoTB.Text += "\nclicked";
        Session.Clear();
        Session.Abandon();
        if (SignOut != null)
        SignOut(this, EventArgs.Empty);
    }

usercontrol中定义的事件必须是静态的,否则主页面中的事件处理程序会抛出错误

public static event EventHandler SignOut;

和主页面中的处理程序

protected void Page_Load(object sender, EventArgs e)
    {
        Views.Profile.SignOut += new EventHandler(signOutEvent);
        LoadUserControl();
    }
private void signOutEvent(Object sender, EventArgs e)
    {
        MenuButtons.Visible = true;
        LastLoadedControl = null;
        LoadUserControl();
    }

0 个答案:

没有答案