Здравствуйте.
Пытаюсь реализовать свой компонент, наследуемый от
System.Web.UI.WebControls.WebControl.
Всё хорошо, только не могу добавить в него свои обработчики событий:
OnClick для начала хотелось бы.
Делаю всё как в примере из MSDN (
Server Control Samples),
но событие не приходит, когда кликаю по контролу.
Может дело в том, что в примерах используется
System.Web.UI.Сontrol?
Подскажите, в какую сторону копать…
... << RSDN@Home 1.1.3 stable >>
А ты точно привязку обработчика к событию делаешь?
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, Nisus, Вы писали:
N>А ты точно привязку обработчика к событию делаешь?
Вот код компонента, относящийся к проблеме.
В дизайнере объектов появляется событие новое, на него можно назначить обработчик, но ни он, ни который в коде компонента не вызывается.
public class MyControl: System.Web.UI.WebControls.WebControl, IPostBackEventHandler
{
private string dbgText = "";
// Defines the Click event.
public event EventHandler Click;
// Invokes delegates registered with the Click event.
protected virtual void OnClick(EventArgs e)
{
if (Click != null)
{
Click(this, e);
}
}
// Method of IPostBackEventHandler that raises change events.
public void RaisePostBackEvent(string eventArgument)
{
dbgText += "RaisePostBackEvent was called\n";
OnClick(EventArgs.Empty);
}
protected override void Render(HtmlTextWriter output)
{
// control render code
...
// debug
output.Write("\n<p>" + dbgText + "<p>");
}
}
... << RSDN@Home 1.1.3 stable >>
Можете посмотреть
эту статью. Все дело в том, что событие на клиенте, в данном случае Click должно преобразоваться в серверное событие.
Все должно быть просто, очень просто, настолько просто — насколько это возможно.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Сделал простой новый компонент, также на основе
WebControl — всё работает как надо.
На моём — не хочет, хотя код по событиям один-в-один.
Разница заключается в том, что в первом нерабочем компоненте я рисую сложную таблицу в методе Render(…).
Но разве таблица повлияет на отлов и обработку событий?
@@wanp
... << RSDN@Home 1.1.3 stable >>
Здравствуйте, Евгений Веприков.
ЕВ>Можете посмотреть эту статью.
Прочитал. Значит, элемент управления должен как-то генерировать
PostBack: либо через клиентский скриптовый блок, либо… ? А кроме скрипта можно как-то ещё сгенерировать
PostBack?
ЕВ>Все дело в том, что событие на клиенте, в данном случае Click должно преобразоваться в серверное событие.
А как именно? Той статьи маловато, а во всех книгах, что я читал об ASP.NET создание серверных элементов управление рассматривается неполно…
... << RSDN@Home 1.1.3 stable >>