我有一个C#Web应用程序,它有一个托管用户控件的aspx页面(Review.ascx)。在该用户控件内部还有5个用户控件,其中一个具有公共事件(Review_Summary.ascx)。问题是无论我做什么我无法将事件连接到父ascx控件(Review.ascx)。
以下是我在子控件中的内容(Review_Summary.ascx)
public event EventHandler forwardStatusChanged;
#region methods
protected void btnForward_Click(object sender, EventArgs e)
{
if (btnForward.Text == "Return")
{
if (forwardStatusChanged != null)
{
forwardStatusChanged(sender, e);
}
removeForward();
}
}
在父控件(Review.ascx)中我有这个
public void initReview(string EmployeeNumber)
{
RevSummary.forwardStatusChanged += new EventHandler(RevSummary_forwardStatusChanged);
<more code here>
}
protected void RevSummary_forwardStatusChanged(object sender, EventArgs e)
{
lblReadOnly.Visible = false;
}
RevSummary
是父控件中子控件的ID。 InitReveiw
是由Page_Load事件中的aspx页面调用的方法。
我在编译或运行时没有错误。但是当我单击按钮时,forwardStatusChanged事件为null。在执行正确后调用的“removeForward()”方法。因此,事件始终为null的事实使我相信父控件中的连接不起作用。但是,我确信它会在执行之后执行所有代码。
我怎样才能弄清楚为什么这个事件没有接线?
答案 0 :(得分:0)
从哪里调用initReview?你确定它被调用了,因为发生这种情况的唯一原因是事件处理程序没有真正设置。我从来没有找到过这个原因,有几次我自己这样做了。
HTH。