![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Как из JavaScript вызвать серверный PostBack, да так, чтобы не обновлять всю страницу?
-------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Нужно вызвать __doPostBack с указанием UniqueId UpdatePanel'и: http://encosia.com/2007/07/13/easily-refre...ing-javascript/
Это сообщение отредактировал(а) Idsa - 13.11.2008, 06:05 |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Да, действительно - помогло.
Но появилась новая проблема, UpdatePanel стал обновляться, а сним также начали и другие UpdatePanels обновляться, можноли сделать обновление только для одной указанной панели? -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Для тех панелей, которые не должны обновляться при каждом постбэке, выставьте UpdatePanel.UpdateMode = UpdatePanelUpdateMode.Conditional.
|
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Еще один нюанс насчет первого вопроса. Вызов __doPostBack('ControlUnqueId', '') лучше прописывать не ручками, а через
Метод GetPostBackEventReference не только вернет строку __doPostBack('ContorlUniqueId', ''), ликвидировав возможность опечатки, но еще и зарегистрирует на странице метод __doPostBack, если этого еще не сделал другой контрол. Конечно, маловероятно, что на странице не найдется контрола, который не сделает этого... тем не менее в обратном случае без вызова GetPostBackEventReference вызовы __doPostBack перестанут работать. P. S. Сейчас проверил. 1. Создаю пустую страницу. Запускаю - __doPostBack нет. 2. Добавляю на страницу ScriptManager. Запускаю - __doPostBack есть. Так что ScriptManger заботится о регистрации __doPostBack, поэтому вызов GetPostBackEventReference в данном случае не даст ничего, кроме отсутствия необходимости набирать __doPostBack вручную. Тем не менее, в более общем случае стоит иметь GetPostBackEventReference в виду. |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Сделал как вы сказали, панель не обновляется визуально, НО PanelLoad всеравно вызвается, так и должно быть ?
-------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Artemon, должно быть так, как написано в MSDN:
Если контрол, который вызывает обновление, находится вне UpdatePanel'и с UpdateMode.Conditional, нужно либо добавить Trigger, либо вызывать UpdatePanel.Update вручную. |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Вопрос в другом, визуального обновления панели не происходит, если UpdatePanel.UpdateMode = UpdatePanelUpdateMode.Conditional.
Но с чего вдруг срабатывает событие, которое обычно вызывется при обновлении панели (LoadPanel)? Казалосьбы если нет обновления, тои не должно вызываться событие PanelLoad -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Ах вот Вы о чем... То о чем, Вы говорите, - полный жизненный цикл страницы при обновлении через UpdatePanel - и есть самый большой недостаток UpdatePanel. Тут нужно выбрать между излишней нагрузкой на сервер (из-за полного жизненного цикла) и удобством использования (кинул панельку - и забыл про какой-либо геморой). |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
+1
-------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |