Динамической создание и сохранение (!) ЭУ

Программирование Web-приложений и Web-сервисов.

Модератор: Ramzes

ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Динамической создание и сохранение (!) ЭУ

Сообщение ndemidov » 31.01.2010 (Вс) 21:16

Создаю программно строки и ячейки таблицы (WebControls.Table), заполняю их текстом, картинками и ЭУ LinkButton. А также добавляю обработчики события для LinkButton.Click. Проблема в том, что на странице так же присутствует таймер (Timer), который срабатывает каждую секунду и эти динамические ЭУ исчезают. Как их можно сохранить динамические ЭУ и события для них?
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов

ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Re: Динамической создание и сохранение (!) ЭУ

Сообщение ndemidov » 31.01.2010 (Вс) 21:46

Mit научил меня сегодня пользоваться Гуглом... вот я нашёл какую-то фиговину -- http://forums.asp.net/t/1516377.aspx --, вроде динамическую кнопку оно сохраняет, но событие нет.
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов

ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Re: Динамической создание и сохранение (!) ЭУ

Сообщение ndemidov » 31.01.2010 (Вс) 23:28

Я тут всё в поиске по Яндексу узнал, что кажется можно делать так, чтобы страница общалась с сервером без перезагрузки самой страницы... Если так можно делать, то, возможно, это будет альтернативный вариант. Хорошо бы иметь возможность выбора на сервере: отправлять польз-лю новую страницу или только некоторые даннфе.
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4256
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Динамической создание и сохранение (!) ЭУ

Сообщение iGrok » 31.01.2010 (Вс) 23:50

ndemidov писал(а):...чтобы страница общалась с сервером без перезагрузки самой страницы...

Ключевое слово AJAX.
label:
cli
jmp label

ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Re: Динамической создание и сохранение (!) ЭУ

Сообщение ndemidov » 01.02.2010 (Пн) 0:09

Я так понимаю это не ЭУ UpdatePanel и Timer, т.к. из-за них страница проходит весь жизн. цикл и отправляется клиенту?
Нашёл какюу-то статью, кот. начинается с "...Обратные вызовы – это специальный вид возврата формы, т.е. страница проходит свой цикл событий, но данные формы возвращаются клиенту до начала процесса рендеринга формы, т.е. до перерисовки. Как и в любом AJAX исполнении запрос начинается на клиентской стороне в результате возникновения какого-либо события, при этом запускается клиентская встроенная функция под названием WebForm_DoCallback. Эта функция имеет следующий прототип:..."

----ADDED:
Я тут подумал - корень зла - это таймер, который раз в секунду заставляет пройти весь жизненный цикл страницы с полной её отрисовкой и всё это ради одного вызова функции. А-А-а!!.. какой ужас! :twisted:
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов

ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Re: Динамической создание и сохранение (!) ЭУ

Сообщение ndemidov » 01.02.2010 (Пн) 13:39

iGrok писал(а):
ndemidov писал(а):...чтобы страница общалась с сервером без перезагрузки самой страницы...

Ключевое слово AJAX.


iGrok, в данном случае AJAX не "катит", т.к. он приводит к перерисовке всей странице (и событий Page_Init, в том числе), а из-за этого сбиваются динамически созданные контролы и, самое главное, события для их обработки. Если только есть способ этого избежать, который я не нашёл.

Нашёл вот такую статью http://msdn.microsoft.com/ru-ru/library/ms178209.aspx . Сделал как в ней. Динамические контролы и события для них CallBack'ные вызовы функций она не сбивает. теперь осталось прикрутить таймер JavaScript'ный. Если он тоже будет работать как надо, то видимо придётся всю страницу переписывать с заменой UpdatePanel на CallBack'ные JavaScript. :(
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4256
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Динамической создание и сохранение (!) ЭУ

Сообщение iGrok » 01.02.2010 (Пн) 15:58

ndemidov писал(а):iGrok, в данном случае AJAX не "катит", т.к. он приводит к перерисовке всей странице (и событий Page_Init, в том числе),

Я, к сожалению, в глаза не видел asp.net и ничерта в нём не понимаю, но уверяю тебя, что тобою написанное - не правда.
Либо ты нашёл какой-то странный способ её(технологии ajax) применения.
AJAX - это как раз общение с сервером(отправка запросов, получение ответов) при помощи объекта xmlhttprequest БЕЗ перезагрузки страницы.
Так что либо ты нашёл странную кривую статью, либо ты что-то не так делаешь.
label:
cli
jmp label

ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Re: Динамической создание и сохранение (!) ЭУ

Сообщение ndemidov » 01.02.2010 (Пн) 18:20

Я не совсем правильно выразился. При использовании UpdatePanel и Timer'а в ней. Да, внешне для клиента странница не загружается и кусок страницы обновляется без мерцаний. Но программно, я точно не знаю как это происходит, но вроде так: отправляется постбэк и страница программно проходит весь жизненный цикл и также проходит Render (что это?) . И я точно знаю, что при обновлении UpdatePanel и/или Timer'а в ней, переменные уровня этой страницы сбрасываются, как и все динамическое. Так что похоже, этот AJAX только выглядит таким, или я его неправильно юзаю.

----По решению задачи: только что приехал, получил долбаный паспорт, снова сел. Поставил на страницу клиентский таймер (кстати, кто-нибудь знает, почему при св-ве интервал <=1000 мс он не работает, а при 1100 - работает?). При запуске таймера сделал CallBack'ные функции для обновления чата и счётчика времени (чего-то ещё нужно будет сделать)... "Тяжеловесные" ЭУ (да они к тому же и серверные!), типо динамически генерируемых таблиц, думаю оставить в UpdatePanel, тогда у меня страница (для пользователя) не будет перезагружаться ни разу. А на самом деле страница будет перезагружаться только при щелчках на серверных ЭУ, а AJAX только будет делать вид, что это не так. Вроде должно получиться.

----ADDED 19:20
Только что узнал, что есть какой-то тег FRAME. Скачал пример, посмотрел. Может всё, что надо обновлять делать через FRAME?

----ADDED 19-10 2 Feb
Изучаю тэг фрейм. Переделываю сайт с использованным фреймов (около 4-6 штук) с UpdatePanel и AJAX-таймерами внутри. CallBack-функции делать не буду: проще с фреймами и AJAX'ом, правда трафик и ресурсов требуется гораздо больше.

Напоминаю почему я так делаю: Любое изменение на странице (включая AJAX UpdatePanel и AJAX Timer) приводит к программному пересозданию страницы, сбивая все динамические контролы и события для них.
А мне нужно держать n-ное время динамич. таблицу с событиями для контролов в ней не перерисовываемой, а некоторую информацию обновлять раз в секунду. (Я сам уже начинаю путаться, что вообще надо сделать)
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Re: Динамической создание и сохранение (!) ЭУ

Сообщение FaKk2 » 04.02.2010 (Чт) 21:32

Дай угадаю, ты воспользовался моим примером с закрашиванием клеток?

В таком случае тебе надо прочитать про updatepanel и как работает асинхронный постбэк.
Вот например хорошая статья про детали: http://msdn.microsoft.com/en-us/magazine/cc163413.aspx
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Re: Динамической создание и сохранение (!) ЭУ

Сообщение ndemidov » 05.02.2010 (Пт) 11:00

Да, спасибо.
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов


Вернуться в ASP.NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList