Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Синхронизация событий контрола и страницы 
:(
    Опции темы
Idsa
Дата 20.12.2007, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



У меня на страничке лежит контрол, от которого я получаю определенный объект в OnLoad (позже нельзя, т. к. это нужно сделать до обработки событий RaiseChangedEvents и RaisePostBackEvents). В свою очередь этот объект принимает нужный мне вид только в событии OnLoad контрола. Подскажите, как можно выйти из этой ситуации, ибо в OnLoad'е страницы объект все еще равен null :(

Это сообщение отредактировал(а) Idsa - 21.12.2007, 00:57


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
tol05
Дата 20.12.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 34
Всего: 170



Вопрос непонятен. 
Цитата(Idsa @  20.12.2007,  15:47 Найти цитируемый пост)
У меня на страничке лежит контрол, от которого я получаю определенный объект в OnLoad

В OnLoad страницы или контрола?

Load генерируется сначала для страницы, а потом - для ее контролов... Можно написать метод страницы, который подписать на Load контрола. И в нем делать то, что тебе нужно..

А еще лучше подписаться на событие LoadComplete страницы - как раз ее Load и Load контролов закончился.


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Idsa
Дата 21.12.2007, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(tol05 @  20.12.2007,  17:52 Найти цитируемый пост)
А еще лучше подписаться на событие LoadComplete страницы - как раз ее Load и Load контролов закончился. 

В LoadComplete уже пройдут вызовы RaiseChangedEvents и RaisePostBackEvents :(

Цитата(tol05 @  20.12.2007,  17:52 Найти цитируемый пост)
Можно написать метод страницы, который подписать на Load контрола. 

А вот это, похоже, то, что нужно.
Только вот, если я подпишусь на Load контрола из страницы, мой код вызовется после Load самого контрола? Просто, насколько я помню, когда к событию подписано несколько методов, порядок их вызова не определен. Или я ошибаюсь?


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
tol05
Дата 21.12.2007, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 34
Всего: 170



Можно так:
введи поле-делегат в контрол. На странице - передавай метод страницы делегату. В контроле, перед сымым выходом из OnLoad, вызывай делегат.

Т.о. последовательность такая будет

OnLoad страницы стартует
    OnLoad контрола стартует
    ...
    Контрол вызывает делегат
    OnLoad контрола закончен
OnLoad страницы закончен.


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Idsa
Дата 21.12.2007, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



tol05, идея интересная. Только вот универсальностью и не пахнет :(


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
tol05
Дата 21.12.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 34
Всего: 170



в смысле? Какая универсальность? У тебя тоже ситуация не универсальна...

К тому же мне непонятно почему:
- в класс контрола можно добавлять члены как поля (я имею в виду, что страница, юзер-контрол - это такие же C# классы, как и классы консольных приложений) через добавление на страницу кнопок и гридов
- но нельзя добавлять члены класса - делегаты, события и т.п.

???

Все в твоих руках, чем хочешь, тем и   работаешь.

Можно сделать событие контрола, которое он будет возбуждать сразу после окончания работы с твоими данными, в своем OnLoad.. А на странице подпосаться на это событие. Ничем не будет отличаться от какого-нибудь
Код

    protected void Button1_Click(object sender, EventArgs e)


ну а впрочем, смотри сам. Хозяин-барин. 


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Idsa
Дата 21.12.2007, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Пожалуй, соглашусь.
Спасибо за помощь. +1.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.