假设我有一个带有几个按钮的用户控件。我想知道是哪一个导致了回发,使用这种方法:
public static Control GetPostBackControl(Page page)
{
Control control = null;
string ctrlname = page.Request.Params.Get("__EVENTTARGET");
if (ctrlname != null && ctrlname != string.Empty)
{
control = page.FindControl(ctrlname);
}
else
{
foreach (string ctl in page.Request.Form)
{
Control c = page.FindControl(ctl);
if (c is System.Web.UI.WebControls.Button)
{
control = c;
break;
}
}
}
return control;
}
这就是我所说的:
string btn = GetPostBackControl(this.Page).ID;
我得到“对象引用未设置为对象的实例。 ”我现在知道问题出在我使用this.Page的事实,它代表父页面。
如何引用我所在的用户控件?(不是父页面)以便它可以使用方法来查找导致回发的按钮?
感谢您的帮助。
编辑
这两个按钮都位于用户控件内。GetPostBackControl()也在用户控件的代码隐藏中。