Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Ручной задание событий


Автор: Idsa 26.11.2007, 16:50
Я попробовал задать обработчик для GridView.RowDataBound в конструкторе CodeBehind класса страницы (через делегат) - не получилось. Перенес тот же самый код в OnLoad - заработало. Так чем же не угодил компилятору конструктор?

Автор: Mymik 27.11.2007, 20:52
выскажу свое подозрение. Не буду говорить что оно совсем таки правильное но надеюсь разовьем эту тему.
Вобщем судя из того что я знаю о программировании. В процессе создания объекта (а точнее как нам говорили на парах по системному программированию) после выделения памяти под объект вызывается конструктор этого класса.
Получается что мы создаем объект, но поля у нас еще равны null.  А вот эти поля (те которые контролы на странице) начинают получать значение в OnInit (на сколько я помню) и собственно в этом же событии и загружается ViewState... Вот. Следовательно при использовании конструктора просто еще не существует привязки объектов из aspx страницы к code-behind... Собственно вот что я и думаю smile.

Автор: Idsa 27.11.2007, 21:16
Цитата(Mymik @  27.11.2007,  20:52 Найти цитируемый пост)
при использовании конструктора просто еще не существует привязки объектов из aspx страницы к code-behind

Пожалуй, соглашусь smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)