Если все, что вы делаете, это сигнализирует о нажатии кнопки, я бы попросил ваш элемент управления ASCX вызвать простое событие. Таким образом, каждая страница может прослушивать событие, если это необходимо, и элементы управления могут работать независимо от того, слушает ли кто-либо.
Сначала объявите события в вашем коде ASCX:
public event System.EventHandler NextSelected;
Затем вы создаете события нажатия кнопки, которые вызывают событие.
protected void btnNextSelected_Click(object sender, EventArgs e)
{
if (EmployeeSelected != null)
{
NextSelected(this, new EventArgs());
}
}
Затем на своих родительских страницах ASP.Net вы можете добавить свой элемент управления ASCX (назовем его NavControl) и создать методы, которые прослушивают эти события.
NavControl.NextSelected += new EventHandler(NextPageRedirect);
protected void NextPageRedirect(object sender, EventArgs e)
{
Response.Redirect("~/ViewEmployee.aspx", false);
}
Обратите внимание, что при этом вам не нужно создавать обработчик событий или метод, и вы все равно можете использовать элемент управления nav на своей странице. Это также должно устранить проблемы, возникающие у вас с делегатами.