Простой способ AJAX WebControls

У меня есть веб-приложение, которое я пытаюсь оптимизировать. Некоторые элементы управления скрыты в диалоговом стиле DIVs. Поэтому я хотел бы, чтобы они загружались через AJAX только тогда, когда пользователь хочет их видеть. Это хорошо для элементов управления, которые в основном основаны на литералах (различные меню и виджеты), но когда у меня есть то, что я называю «грязными» элементами управления - те, которые записывают обширную информацию ViewState, помещают тонны CSS или скриптов на страницу, требуют много ссылок и т. д. - казалось бы, невозможно переместить «из страницы», особенно если учесть, как ASP.NET будет реагировать на обратную передачу.

Я думал о каком-то шаге, где я переопределяю Render, нахожу маркеры для битов, которые я хочу переместить, и помещаю туда заполнители AJAX, но не только нагрузка на сервер кажется чрезмерной, но и ощущается как полный взлом. Кроме того, ключевым элементом здесь являются диалоговые окна, которые содержат формы с проверочными элементами управления на них, и я не представляю, как бы я переместил элементы управления и их необходимые сценарии.

В моем воспаленном воображении я хочу сделать это:

AJAXifier.AJAXify(ctlEditForm);

К сожалению, я знаю, что это мечта.

Насколько я могу быстро и легко получить AJAXification без чрезмерной нагрузки на сервер?

5.08.2008 12:40:30
@ tags2k - Если это поможет, я думаю, вы можете получить лицензию на контрольный набор за 799 долларов (без подписки и исходного кода)
Yaakov Ellis♦ 6.08.2008 12:51:44
3 ОТВЕТА
РЕШЕНИЕ

Проверьте элемент управления RadAjax от Telerik - он позволяет вам избегать использования UpdatePanels и ограничивает объем информации, передаваемой взад и вперед между сервером и клиентом, путем объявления прямых связей между вызывающими элементами управления и элементами управления, которые должны быть «Ajaxified», когда вызывающие элементы управления отправить постбэки.

5
5.08.2008 14:19:26
Это именно то, что я хочу, к сожалению, это 999 долларов, и это просто не в бюджете. Я отмечу ваш пост как ответ, если у кого-то нет более дешевой альтернативы! @Rob: Я с гордостью могу сказать, что в целом решении нет UpdatePanel, я, несмотря на их, и невероятно неэффективный бред, который они отправляют. Проблема с попытками убрать грязные элементы управления заключается в том, что преступники не мои, а Microsoft!
tags2k 5.08.2008 14:44:36

Шаг первый - сделать ваши "грязные" части автономными пользовательскими элементами управления.

Шаг второй - встроить эти элементы управления на страницу потребления.

Шаг третий - обернуть каждый пользовательский тег управления в свой собственный Asp: UpdatePanel

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

Ваш пробег может варьироваться.

1
5.08.2008 14:19:01

Я рекомендую вам в эти выходные пойти в местный книжный магазин, выпить чашку кофе и найти jQuery в действии от Manning Press. Идите вперед и прочитайте первую главу этой 300-страничной книги в магазине, а затем купите ее, если она откликнется на вас.

Я думаю, вы будете удивлены тем, насколько просто jQuery позволяет вам выполнять то, что вы здесь описываете. От вызовов ajax к серверу в фоновом режиме, до отображения и скрытия тегов div на основе действий посетителя. Количество кода, которое вы должны написать, очень мало.

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

2
5.09.2008 15:54:18