powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / dinamic User Control Loading
10 сообщений из 10, страница 1 из 1
dinamic User Control Loading
    #33390622
Viktorianka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такая беда, на страничке меню, по клику на элементе меню в заданную панель подгружается контрол вот таким макаром:

Control c=Page.LoadControl(controlname);
ContentPanel.Controls.Add(c);
c.DataBind();
Session["Control"]=c;

тут все OK, контрол загрузился, дальше допустим происходит постбэк, чтобы контрол не исчез в PageLoad написала вот такой текст


if (!(Session["Control"]==null))
{
ContentPanel.Controls.Clear();
ContentPanel.Controls.Add((Session["Control"] as UserControl));
}

все вроде работает. Но иногда такой динамически загруженный юзерконтрол глючит. Например у меня есть в юзерконтроле дерево, по клику меняется SelectedItem в дереве и происходит нужное событие. Так вот при динамической загрузке контрола получается что при первом клике все нормально отрабатывается, итем выбирается, событие происходит, а при втором клике получается что курсор обратно перескакивает на итем который выделили до того и событие не происходит. Если тот же UserControl добавлять к страничке статически, то все OK, все нормально работает, события отрабатывают, т.е. дело тут видимо в динамической загрузке юзерконтрола. Где я промахнулась? Может подгружать при постбеке надо как-то по-другому?
...
Рейтинг: 0 / 0
dinamic User Control Loading
    #33390768
sergee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
задавай контролу одинаковый id при первом создании и при последующих восстановлениях.
...
Рейтинг: 0 / 0
dinamic User Control Loading
    #33390773
Viktorianka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. запоминать id а не контрол? так чтоли?
...
Рейтинг: 0 / 0
dinamic User Control Loading
    #33390805
sergee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, просто убедись, что при восстановлении контрола у тебя ID такой же какой и был когда ты его создавал первый раз.
я сам не пробовал контролы в сессию сохранять, просто первое что приходит в голову, когда при динамическом создании контролов не отрабатывают события - это что при втором создании контрола у него меняется ID
...
Рейтинг: 0 / 0
dinamic User Control Loading
    #33390869
sergee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя похоже у тебя не из-за этого проблема. ведь первый клик отрабатывается, значит ид тут ни при чём.
...
Рейтинг: 0 / 0
dinamic User Control Loading
    #33390876
Viktorianka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
id не причем, проверила в полученном HTML-ле, id-шник такм не меняется
...
Рейтинг: 0 / 0
dinamic User Control Loading
    #33391005
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не слишком въехал в проблему, но кажется что-то намудрили тут
Код: plaintext
1.
2.
3.
4.
5.
if (!(Session["Control"]==null))
{
ContentPanel.Controls.Clear();
ContentPanel.Controls.Add((Session["Control"] as UserControl)); 
}
и с постбэком на pageLoad. Смотрите на поверхности решение.
...
Рейтинг: 0 / 0
dinamic User Control Loading
    #33391056
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а нафиг вообще держать контрол в сессии? каков смысл?
2Axeleron , присоединяюсь...
_______________________________________________________
Господи, сколько ещё не сделано... А сколько ещё предстоит не сделать...!
...
Рейтинг: 0 / 0
dinamic User Control Loading
    #33391299
Viktorianka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лиман Артём, а как иначе сдлеать чтобы он не исчезал при постбеке?
...
Рейтинг: 0 / 0
dinamic User Control Loading
    #33392381
Viktorianka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашла грабли, надо не контрол в сессии сохраняь, а его название и каждый раз делать Page.LoadControl(ControlName) и ID ему одинаковый устанавливать, иначе контрол при загрузке не инициализируется правильно и у него события пропадают.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / dinamic User Control Loading
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]