如何在父页面中处理或检查用户控制回发?

时间:2015-07-23 21:19:05

标签: asp.net webforms

我的用户控件中有一个复选框。当用户控制复选框的CheckedChanged事件被触发时,如何禁用我父控件的事件?

1 个答案:

答案 0 :(得分:1)

您无法禁用ASP.Net Life Cycle中的事件。

但是,您可以在每个事件内部检查是否由父或用户控件触发回发。

如果您想检查页面中的哪个控制火灾事件 -

public partial class Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            string id = Request.Form["__EVENTTARGET"];
            if (!string.IsNullOrWhiteSpace(id) && id.Contains("WebUserControl11"))
            {
            }
        }
    }
}

enter image description here

如果你想检查我的一个控件是否在 UserControl 中触发了这个事件 -

public partial class WebUserControl1 : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack) // *** This IsPostBack is not same as Parent's IsPostBack ***
        {

        }
    }

    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
        if (IsPostBack)
        {

        }
    }
}