У меня есть 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 (), который вызывается после этого, выполняется правильно. Так что тот факт, что событие всегда является нулевым, заставляет меня поверить, что соединение в родительском элементе управления не работает. Однако я уверен, что он выполняется, поскольку весь код выполняется после этого.
Как я могу выяснить, почему это событие не подключается?