Как установить значение для пользовательского элемента управления перед OnInit - ASP.net? - PullRequest
2 голосов
/ 11 июля 2011

У меня есть пользовательский элемент управления, которому принадлежит свойство. Внутри этого метода пользовательского элемента управления OnInit он использует это свойство для выполнения какой-либо другой работы.

Итак, на стороне страницы я инициализирую этот пользовательский элемент управления и устанавливаю его свойство в методе Page_Init. Но метод Oninit пользовательского элемента управления вызывается раньше, чем метод Page_Init, что означает, что я никогда не получаю правильное значение свойства в методе OnInit. Так что же является правильным местом для установки значения свойства пользовательского элемента управления из кода страницы за стороной?

Спасибо

Ответы [ 2 ]

2 голосов
/ 11 июля 2011

PreInit существует только для страницы, поэтому, если вам нужно что-то установить со страницы, это может сработать. Инициализация срабатывает в обратном порядке, сначала для самого низкого уровня управления, и всплывает до последней стрельбы. Все остальные события начинаются с первой страницы вниз.

Если PreInit может работать, используйте его. В противном случае для обхода свойства необходимо проверить, является ли значение пустым и не предоставлено, и, если нет, оно может вызвать событие NeedValue, требующее его предоставления.

НТН.

0 голосов
/ 11 июля 2011

Предполагая, что вы используете 2.0 или выше, существует событие уровня страницы PreInit, предназначенное для такого рода вещей.

Если вы не можете написать его непосредственно оттуда - некоторые вещи, такие как ваш элемент управления, могут не существовать - вы можете использовать HttpContext.Items, чтобы спрятать значение, куда элемент управления мог бы его получить. Но это становится по-настоящему хакерским.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...