OnInit , FindControl и OnClick

Опубликовано Vladimir - ср, 11.11.2009 - 21:16

Добавить комментарий

Содержимое данного поля является приватным и не предназначено для показа.

Filtered HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <p> <br><b><i> <img src alt height width>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

Проявление:

Если создать aspx страницу, в ней LinkButton, он подписать его на событие OnClick, а
в странице в функции OnInit вызвать

Control myControl = Page.FindControl(ctrlName);

,то событие OnClick для всех элементов страницы болше работать не будет

Проблема выявляется в Веб-приложениях .NET 2.0, 3.5

Причина:

Причина в реализации Page.FindControl, которая не просто находит нужнуй контрол, но выполняет некие дополнительные дества и по при этом обнуляет обработчик для события OnClick.

Решение:

Решается написанием собственной функции FindControl, которая будет рекурсивно перебирать элементы страницы без выполнения модификаций

Особая благодарность Артему, который исследовал ошибку и нашел решение