c # Ajax Ленивая загрузка - PullRequest
       7

c # Ajax Ленивая загрузка

1 голос
/ 16 апреля 2009

Мне нужно заполнить 4 GridViews на странице aspx, но я привязываю данные только к одному из них при загрузке страницы. Мне нужно окукливать остальные 3 после загрузки страницы.

Кто-нибудь знает лучший способ сделать это с помощью ajax?

В настоящее время я использую javascript для __doPostBack на кнопке, которая копирует 3 GridView, но, к сожалению, это вызывает полную загрузку страницы даже при использовании панели обновления. Мне нужна страница, чтобы загрузить, а затем заполнить GridViews, когда возвращаются таблицы данных.

любые предложения будут высоко оценены.

Ответы [ 2 ]

2 голосов
/ 16 апреля 2009

То, как вы это делаете, должно работать нормально, хотя с помощью jquery для заполнения div через $ ("# targetDiv"). Load ("contentUrl"); функция может быть более чистым способом сделать это. В любом случае, чтобы ваша текущая реализация работала, вам может понадобиться несколько вещей:

  1. Я предполагаю, что EnablePartialRendering имеет значение true для вашего ScriptManager (всегда стоит проверять!).
  2. Убедитесь, что eventTarget для вызова __dopostback настроен как асинхронный триггер для ваших панелей обновлений или что он находится внутри UpdatePanel, если вы используете только одну UpdatePanel. ( Подробнее см. Здесь )
  3. Попробуйте вернуть false из кода javascript, который выполняется в обработчике событий onclick, если вы прикрепили его к кнопке, чтобы убедиться, что форма не отправляется браузером нормально при нажатии кнопки.
0 голосов
/ 16 апреля 2009

Если я правильно понял вопрос, вы хотите, чтобы данные загружались после того, как страница в браузере. Если это так, то вы можете запустить событие с JavaScript, когда страница загружается на клиент.

Один из методов, который я использовал, - это разместить на странице скрытую (с CSS, а не каким-либо свойством) кнопку и «щелкнуть» ее с помощью javascript. Событие события нажатия кнопки должно быть записано в коде страницы. Кроме того, кнопка должна находиться на панели обновлений, которая либо содержит сетки, которые вы хотите привязать, либо имеет соответствующие триггеры для их перезагрузки.

Вы можете посмотреть на JQuery, чтобы получить управление, когда этот код запускается. $ (Document) .ready (function () {/ * Ваш код здесь ... * /}); метод сработает после того, как станет доступен весь DOM, что быстрее, чем ждать загрузки всей страницы (изображений и т. д.).

...