Частичная загрузка страницы AJAX? - PullRequest
1 голос
/ 12 сентября 2008

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

Очевидно, что некоторые запросы занимают больше времени, чем другие. Как я могу сделать каждый рендеринг сетки, как только он получит необходимые данные?

Это было сложно для меня, потому что это должно работать как с обратной передачей, так и с загрузкой страницы. Кроме того, источники данных объекта просто автоматически запускаются при загрузке / обратной передаче страницы; Я не вызываю какие-либо методы программно для получения данных. Должен ли я изменить это?

Ответы [ 2 ]

2 голосов
/ 12 сентября 2008

@ Гарет Дженкинс

Страница выполнит все запросы перед возвратом даже первой панели обновления, поэтому он не будет сохранять там время.

Хитрость для этого заключается в том, чтобы переместить каждое из ваших сложных видов сетки в пользовательский элемент управления, в пользовательский элемент управления, избавиться от дерьма Object DataSource и выполнить связывание в коде.

Напишите свой код привязки, чтобы он связывался только в этой ситуации:

if (this.isPostBack && ScriptManager.IsInAsyncPostback)

Затем на странице программно обновите панель обновления, используя javascript после загрузки страницы, и вы получите каждый отдельный рендеринг сетки, как только он будет готов.

0 голосов
/ 12 сентября 2008

Не могли бы вы поместить DataGrids внутри панелей, для которых видимость установлена ​​в false, а затем вызвать функцию javascript на стороне клиента из события onload тела, которое вызывает функцию на стороне сервера, которая устанавливает видимость панелей в true?

Если вы объединили это с элементом управления asp: updateProgress и обернули все это в UpdatePanel, вы должны получить что-то близкое к тому, что вы ищете - особенно если вы подключили функцию js, вызываемую в onload, чтобы показать только одну панель и вызвать функцию возврата, которая показала следующее и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...