Может быть, это только я, но я никогда не видел, чтобы элементы управления ссылались и загружались таким образом. Вот что я бы попробовал сделать таким образом (это работает для меня):
На вашей домашней странице зарегистрируйте свой слот-контроль следующим образом, вместо того чтобы ссылаться на него, как раньше:
<%@ Register TagName="Slot" TagPrefix="cc" Src="~/Slot.ascx" %>
А затем добавьте элемент управления на свою страницу с помощью:
<cc:Slot ID="SlotControl" runat="server" />
Теперь в Slot.ascx, зарегистрируйтесь и включите элемент управления Ray:
<%@ Register TagName="Ray" TagPrefix="cc" Src="~/Ray.ascx" %>
<cc:Ray ID="RayControl" runat="server" />
А теперь в вашем контроле Ray добавьте свою кнопку:
<asp:Button ID="ButtonRay" Text="Ray" OnClick="ButtonRay_OnClick" runat="server" />
А в коде позади Ray.ascx.cs добавьте свой обработчик событий:
protected void ButtonRay_OnClick(object sender, EventArgs e)
{
}
Когда я добавляю точку останова для этого метода, запускаю приложение и нажимаю кнопку, событие OnClick перехватывается, как и должно быть. Я думаю, что происходит то, что простая ссылка на ваши элементы управления не связывает события. Если вы динамически загружали свои элементы управления, вы должны использовать Page.LoadControl()
, чтобы они правильно подключались.
Дайте мне знать, если вам нужно больше объяснений.
EDIT:
Я только что заметил, что имя вашего метода нажатия кнопки не совпадает с тем, которое вы просили вызвать: кнопка ButtonRay выполняет ButtonRay_Click, но имя вашего метода - ButtonComment_Click.