Общедоступные события .NET не подключаются к вложенным элементам управления веб-пользователя - PullRequest
0 голосов
/ 15 мая 2011

У меня есть C # веб-приложение, в котором есть страница 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 - это идентификатор дочернего элемента управления в родительском элементе управления. InitReveiw - это метод, который вызывается страницей aspx в событии Page_Load.

Я не получаю ошибок при компиляции или во время выполнения. Но когда я нажимаю кнопку, событие forwardStatusChanged становится пустым. Метод removeForward (), который вызывается после этого, выполняется правильно. Так что тот факт, что событие всегда является нулевым, заставляет меня поверить, что соединение в родительском элементе управления не работает. Однако я уверен, что он выполняется, поскольку весь код выполняется после этого.

Как я могу выяснить, почему это событие не подключается?

1 Ответ

0 голосов
/ 15 мая 2011

Откуда вызывается initReview?Вы уверены, что он вызывается, потому что единственная причина, по которой это происходит, заключается в том, что обработчик событий не был действительно настроен.Я никогда не находил другой причины, кроме этой, несколько раз я делал это сам.

HTH.

...