Здравствуйте, dmaster1, Вы писали:
D>Всем привет! D>У контрола ListBox нет ивента OnClick. Подскажите плиз, как его организовать?
примерно так
public class ListBoxEx : System.Web.UI.WebControls.ListBox, IPostBackEventHandler
{
public event System.EventHandler Click;
protected virtual void OnClick(EventArgs e)
{
if (Click != null)
{
Click(this, e);
}
}
#region IPostBackEventHandler Members
public void RaisePostBackEvent(string eventArgument)
{
OnClick(new EventArgs());
}
#endregion
protected override void OnPreRender(EventArgs e)
{
Attributes.Add("onClick", Page.GetPostBackEventReference(this));
base.OnPreRender (e);
}
}
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
Re: Добавляем Click event к ListBox
От:
Аноним
Дата:
04.03.05 14:38
Оценка:
Неправильно!!!!!!!!!!!
System.Web.UI.WebControls.ListBox уже реализует IPostBackEventHandler! Так вы нарушите функциональность базового класса!
Надо переопределить
Здравствуйте, ksg71, Вы писали:
K>Здравствуйте, dmaster1, Вы писали:
D>>Всем привет! D>>У контрола ListBox нет ивента OnClick. Подскажите плиз, как его организовать?
Здравствуйте, Аноним, Вы писали:
А>Неправильно!!!!!!!!!!! А>System.Web.UI.WebControls.ListBox уже реализует IPostBackEventHandler! Так вы нарушите функциональность базового класса! А>Надо переопределить А>
А> где добавить аттрибут "onclick", в Page.GetPostBackEventReference передавать командный аргумент, а в перепределенном RaisePostBackEvent ловить коммандный аргумент и в зависимости от его значения выполнять свои действия или вызывать этот метод базового класса.
А>данное сообщение получено с www.gotdotnet.ru А>ссылка на оригинальное сообщение
RaisePostBackEvent метод не полиморфный, способ вызвать
событие — реализовать интерфейс явно, во всяком вариант работает не
нарушая функциональности базового класса. Покажите Ваш вариант
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
Здравствуйте, Аноним, Вы писали:
А>Неправильно!!!!!!!!!!! А>System.Web.UI.WebControls.ListBox уже реализует IPostBackEventHandler! Так вы нарушите функциональность базового класса! А>Надо переопределить А>
А> где добавить аттрибут "onclick", в Page.GetPostBackEventReference передавать командный аргумент, а в перепределенном RaisePostBackEvent ловить коммандный аргумент и в зависимости от его значения выполнять свои действия или вызывать этот метод базового класса.
А>данное сообщение получено с www.gotdotnet.ru А>ссылка на оригинальное сообщение
Сделал следующее:
public class ListBoxEx : System.Web.UI.WebControls.ListBox
{
public event System.EventHandler Click;
Здравствуйте, dmaster1, Вы писали:
D>Здравствуйте, ksg71, Вы писали:
K>>Здравствуйте, dmaster1, Вы писали:
D>>>Всем привет! D>>>У контрола ListBox нет ивента OnClick. Подскажите плиз, как его организовать?
D>Благодарю за отзывчивость.
D>Как раз то, что нужно!
D>Кстати, хотелось бы разобраться с созданием своих собственных контролов. Подскажите плиз, с чего начать и где читнуть ???
Здравствуйте, ksg71, Вы писали:
K>Здравствуйте, Аноним, Вы писали:
А>>Неправильно!!!!!!!!!!! А>>System.Web.UI.WebControls.ListBox уже реализует IPostBackEventHandler! Так вы нарушите функциональность базового класса! А>>Надо переопределить А>>
А>> где добавить аттрибут "onclick", в Page.GetPostBackEventReference передавать командный аргумент, а в перепределенном RaisePostBackEvent ловить коммандный аргумент и в зависимости от его значения выполнять свои действия или вызывать этот метод базового класса.
А>>данное сообщение получено с www.gotdotnet.ru А>>ссылка на оригинальное сообщение
K>RaisePostBackEvent метод не полиморфный, способ вызвать K>событие — реализовать интерфейс явно, во всяком вариант работает не K>нарушая функциональности базового класса. Покажите Ваш вариант
Хотя бесспорно, что то работать не будет, AutoPostBack к примеру не
отключишь , но это не из-за реализации
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx