.NET公共事件未在嵌套Web用户控件中连接

时间:2011-05-14 23:57:43

标签: asp.net events public

我有一个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的事实使我相信父控件中的连接不起作用。但是,我确信它会在执行之后执行所有代码。

我怎样才能弄清楚为什么这个事件没有接线?

1 个答案:

答案 0 :(得分:0)

从哪里调用initReview?你确定它被调用了,因为发生这种情况的唯一原因是事件处理程序没有真正设置。我从来没有找到过这个原因,有几次我自己这样做了。

HTH。