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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ajax UpdatePanel + UserControl, Ajax UpdatePanel + UserControl 
V
    Опции темы
davandr
Дата 22.2.2007, 14:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Опять у меня траблы с UpdatePanel и UserControl. На этот раз дело вот в чем.

У меня есть юзер контрол, все элементы которого лежат на UpdatePanel. Этот юзерконтрол создается динамически (например, просто на нажатие кнопки). Так вот, после его создания не работают обработчики событий в этом юзерконтроле (например, ButtonClick).
Как заставить их работать?


--------------------
PM MAIL   Вверх
alir
Дата 24.2.2007, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 19.3.2005

Репутация: 1
Всего: 4



Цитата

Этот юзерконтрол создается динамически (например, просто на нажатие кнопки). Так вот, после его создания не работают обработчики событий в этом юзерконтроле (например, ButtonClick).
Как заставить их работать? 

Код можешь кинуть? И почему бы просто не зарегить контрол на странице и менять Visible на Button_Click'e?

PM MAIL ICQ   Вверх
davandr
Дата 24.2.2007, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(alir @  24.2.2007,  12:43 Найти цитируемый пост)
И почему бы просто не зарегить контрол на странице и менять Visible на Button_Click'e?


Уже так и сделал ((( Просто из базы выгребается куча объектов и для каждого приходится свой контрол делать. 



--------------------
PM MAIL   Вверх
Reiden
Дата 27.11.2007, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.1.2005

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



Похожая проблема. Может кто-нибудь все-таки знает решение?
PM MAIL   Вверх
Mymik
Дата 27.11.2007, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



Проблема в том, что когда ты создаешь контрол на стороне сервера, то он как бы создался и ладно, все работает. Но вот когда он посылает на сервер PostBack то на стороне сервера его не существует -- ведь он был создан в результате работы какого-то метода.
Как решение. Могу предложить выгребать данные из базу в OnInit (в этом событии как раз восстанавливается ViewState), создавать контрол и подключать событие к этому контролу. А после OnInit уже срабатывает событие. 


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
Reiden
Дата 28.11.2007, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.1.2005

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



Цитата(Mymik @  27.11.2007,  20:57 Найти цитируемый пост)
Могу предложить выгребать данные из базу в OnInit

Я немного не понял, событие OnInit- это событие UpdatePanel?
Что-то вроде:
Код

  protected void UpdatePanel1_Init(object sender, EventArgs e)
    {
        b=new Button();
        b.Text = "test";
      //  UpdatePanel1.ContentTemplateContainer.Controls.Add(b); //ругается.
        b.Click += new EventHandler(b_Click);
    }

    void b_Click(object sender, EventArgs e)
    {
        TreeView1.ExpandAll(); // событие вне updatepanel
    }


Но как тогда добавить саму кнопку на  updatepanel? Или я что-то неправильно понял?
PM MAIL   Вверх
Mymik
Дата 28.11.2007, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



Reiden, OnInit это событие Page


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
Reiden
Дата 30.11.2007, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.1.2005

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



Control все равно не обновляется, хоть убейся... Т.е метод свою работу выполняет, но на экране это никак не отображается. Только если перезагрузить страницу... Кто-нить знает как это сделать программно?
PM MAIL   Вверх
Pankon
Дата 3.12.2007, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 2
Всего: 5



Цитата(Reiden @  30.11.2007,  00:15 Найти цитируемый пост)
Control все равно не обновляется
 а если UpdatePanel убрать (закомментировать), работает ли как надо UserControl?

У меня такое ощущение, что это проблема НЕ UpdatePanel....


PM MAIL   Вверх
Reiden
Дата 9.12.2007, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.1.2005

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



Да, работает.  Вопрос частично решается с помощью использования ScriptManager.AsyncPostBackSourceElementID, т.е проверяется что вызвало обновление страницы, и далее там можно написать свой метод. Или точно также можно записывать в сессии все кнопки... НО! Зачем тогда аякс, если все равно обновляется вся страница???
 Вот мне к примеру надо сделать вывод из xml списка ресурсов, клик по которым вызвает отображение из свойств справа. И если я начинаю организовывать их  как список кнопок, то щелчек по ним вызвает перезагрузку все страницы... А мне надо сделать так чтобы обновлялась только правая часть экрана... Я думал - думал, гуглил-гуглил, но так и не понял как это сделать.  smile  Даже создание маленьких UpdatePanel для каждой кнопки  не помогает (((( Если кто-то сталкивался с подобной проблемой, не проходите мимо, намекните хотя бы как это сделать...  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

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

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

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


 




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


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

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