Подписка на событие не работает

ekzarov
Дата: 28.04.2007 10:56:20
Есть aspx страница myPage.aspx:
<%@ Control EnableViewState="false" Inherits="DocNet.ResolutionWebControl, ResolutionWebControl, Version=1.0.2674.15690, Culture=neutral, PublicKeyToken=fb0ed9fa90574530"
Language="C#" AutoEventWireup="false" CompilationMode="Always" %>
<asp:Button ID="btnSubmit" runat="server" Text="Do Submit" Width="151px" />
 
И есть класс DocNet.ResolutionWebControl который обрабатывает эту страницу и является наследником от UserControl. В классе пишу:
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            btnSubmit.Click += new EventHandler(btnSubmit_Click);
            LoadInstance();
        }

где btnSubmit контрол кнопки (ссылка на объект, причем с ним всё в порядке). Отладчик заходит в метод OnLoad и код отрабатывает, но при нажатии на кнопку btnSubmit он не попадает в метод btnSubmit_Click, т.е. ничего не происходит ! Может есть у кого идеи ?

Суважением,
Александр Экзаров
iConst
Дата: 28.04.2007 11:26:13
ekzarov:
Есть aspx страница myPage.aspx:
<%@ Control EnableViewState="false" Inherits="DocNet.ResolutionWebControl, ResolutionWebControl, Version=1.0.2674.15690, Culture=neutral, PublicKeyToken=fb0ed9fa90574530"
Language="C#" AutoEventWireup="false" CompilationMode="Always" %>


И есть класс DocNet.ResolutionWebControl который обрабатывает эту страницу и является наследником от UserControl. В классе пишу:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
btnSubmit.Click += new EventHandler(btnSubmit_Click);
LoadInstance();
}

где btnSubmit контрол кнопки (ссылка на объект, причем с ним всё в порядке). Отладчик заходит в метод OnLoad и код отрабатывает, но при нажатии на кнопку btnSubmit он не попадает в метод btnSubmit_Click, т.е. ничего не происходит ! Может есть у кого идеи ?


Во-первых, тут явная опечатка: .aspx и директива @Control. Во вторых - а зачем регистрить хендлер в OnLoad. Помести в Page_Load контрола.

protected void Page_Load(object sender, EventArgs e)
{
btnSubmit.Click += new EventHandler(btnSubmit_Click);
}

Перевернув мир - оглянись, может перевернулся ты сам?!
ekzarov
Дата: 28.04.2007 11:44:34
согласен, опечатался ... Но с Page_Load не помогает .... Всё равно не заходит в обработчик  :(

Суважением,
Александр Экзаров
iConst
Дата: 28.04.2007 12:15:40
ekzarov:
согласен, опечатался ... Но с Page_Load не помогает .... Всё равно не заходит в обработчик :(


Может ты не все показываешь, но вот накидал приерчик: default.aspx, new.aspx, c1.ascx (бросил в default.aspx)

На дефолте размещаю контрол в котором две кнопки и обе редиректят на new.aspx. Обработчик 1 кнопки создан "по умолчанию", а второй - ручками.

listing c1.ascx.cs

public partial class c1 : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
Button2.Click += new EventHandler(Button2_Click);
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("new.aspx");
}

protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("new.aspx");
}

}


Вот и весь код - все работает.

Перевернув мир - оглянись, может перевернулся ты сам?!
ekzarov
Дата: 28.04.2007 12:30:07
А вы CodeFile используете ??? Просто я создал класс и поместил библиотеку с ним в GAC. И только этот класс отвечает за логику страницы... Может быть проблема в этом?

Суважением,
Александр Экзаров
iConst
Дата: 28.04.2007 13:33:15
ekzarov:
А вы CodeFile используете ??? Просто я создал класс и поместил библиотеку с ним в GAC. И только этот класс отвечает за логику страницы... Может быть проблема в этом?


Чет я совсем ничего не понимаю - юзерконтрол с обработчиком в ГАКе - это для меня очень мудрено.
Умываю руки...

Перевернув мир - оглянись, может перевернулся ты сам?!