__doPostBack перезагрузка всей страницы, а не только UpdatePanel - PullRequest
4 голосов
/ 10 февраля 2011

В моем javascript есть следующая строка:

__doPostBack('MyPanel', MyParam);

В своем коде я использую MyParam для запроса базы данных и связывания результата с видом сетки, который находится внутри панели обновления MyPanel.Режим обновления панели обновлений установлен на условно, и в части обратной передачи кода у меня есть MyPanel.Update();

Панель обновлений работает нормально, когда я делаю сортировку и разбиение на страницы;обновляется только панель.Однако, когда я запускаю панель обновления с моим javascript, я вижу трафик в firebug, показывающий, что обновляется вся страница.

Какое решение?

Спасибо.

1 Ответ

16 голосов
/ 10 февраля 2011

Мое предположение: ваша панель обновлений расположена внутри контейнера именования, поэтому ее идентификатор на стороне клиента будет немного отличаться от идентификатора на стороне сервера.Это означает, что вы передали неправильный параметр __EVENTTARGET клиентской функции side __doPostBack, и ваша частичная обратная передача стала полной (то есть не асинхронной).

Итак, изменив код клиента на:

__doPostBack('<%= MyPanel.ClientID %>', MyParam);

должен решить проблему.

Кстати, вы можете получить второй (MyParam в вашем коде) параметр со стороны сервера:

var arg = Request.Params.Get("__EVENTARGUMENT");
...