ASP.NET AJAX и ASP.NET Web Parts

В этом разделе будет продемонстрировано, как можно использовать платформу ASP.NET AJAX в комплексе с пакетом ASP.NET Web Parts, чтобы дать пользователю еще больше возможностей по управлению содержимым и его размещением на странице ASP.NET AJAX. ASP.NET Web Parts – это множество элементов управления, позволяющих пользователю добавлять, удалять и изменять элементы страницы в процессе исполнения. Веб?части предоставляют возможность создавать в ASP.NET такие страницы, как индивидуализированная домашняя страница Google (http://www.google.com/ig).

Веб-части позволяют в клиентских сценариях поддерживать механизм «перетащить-и-отпустить», возможность сворачивать и разворачивать элементы интерфейса и обеспечение других подобных функций. Однако веб-части, распространяемые в составе ASP.NET 2.0, имеют ограниченную область применения, поскольку их функциональность доступна только в Internet Explorer. Таким образом, компоненты ASP.NET Web Parts в основном используются в локальных сетях, в которых можно гарантировать работу с Internet Explorer.

Разумеется, Internet Explorer – не единственный броузер, и многие используют Firefox или другие броузеры. Поэтому, несмотря на всю привлекательность, веб-части плохо подходят для общедоступных вебсайтов, обладающих широким кругом пользователей.

Однако это ограничение может быть компенсировано с помощью платформы ASP.NET AJAX.


Благодаря пакету ASP.NET AJAX Futures теперь возможно использовать веб?части, одинаково функциональные в Internet Explorer и в Firefox. Если вы занимаетесь разработкой общедоступного сайта и вам необходимо обеспечить поддержку разных типов броузеров, то использование компонентов ASP.NET AJAX Web Parts будет лучшим выбором.

В этом разделе вы узнаете, как можно реализовать веб-части с использованием ASP.NET AJAX. Я не буду здесь углубляться в описание принципов, лежащих в основе веб?частей (это слишком обширная тема), поэтому, если вам необходимы дополнительные сведения об основах веб-частей, обращайтесь к соответствующей документации. Лучше всего начинать изучение с домашней страницы проекта ASP.NET AJAX Web Parts (http://msdn2.microsoft.com/en?US/library/e0s9t4ck.aspx).

В примере, который следует ниже, веб?части ASP.NET AJAX будут использоваться для упаковки элементов управления Calendar и Wizard, затем к обоим будет добавлена поддержка механизма «перетащить-и-отпустить», чтобы пользователь имел возможность расположить эти компоненты на странице по своему усмотрению. Пример предусматривает сохранение изменений, произведенных пользователем. Таким образом, если в броузере будет включена поддержка cookies, то при повторном посещении страницы эти два элемента управления окажутся в том же положении, в каком они были оставлены при предыдущем посещении.

Существует два способа работы с веб-частями ASP.NET AJAX.


Первый заключается в отображении тегов ASP.NET Web Parts в эквивалентные им теги ASP.NET AJAX – в этом случае для используется версия веб-частей платформы ASP.NET AJAX. Такой подход можно применить, когда требуется адаптировать существующие веб?страницы, использующие веб-части, под использование элементов управления ASP.NET AJAX, не перестраивая сайт с самого начала.

Для отображения тегов следует добавить в файл Web.config элемент . Этот элемент все ссылки на теги определенного типа отображает в ссылки на теги другого типа.
Следующий фрагмент файла Web.config демонстрирует, как реализовать отображение двух тегов веб-частей ASP.NET (которые определены в пространстве имен System.Web.UI.WebControls.WebParts.WebPartManager) в эквивалентные им теги веб-частей ASP.NET AJAX (которые определены в пространстве имен Microsoft.Web.Preview.UI.Controls.WebParts.Web?
PartManager).



(add tagType="System.Web.UI.WebControls.WebParts.WebPartManager"
mappedTagType="Microsoft.Web.Preview.UI.Controls.WebParts.WebPartManager"/)
(add tagType="System.Web.UI.WebControls.WebParts.WebPartZone"
mappedTagType="Microsoft.Web.Preview.UI.Controls.WebParts.WebPartZone"/)



Данная разметка отобразит типы ASP.NET WebPartManager и WebPartZone в эквивалентные им типы ASP.NET AJAX.


(Вообще тип, указанный в атрибуте tagType отображается в тип, указанный в атрибуте mappedTagType.) Такой способ отобразит все теги веб?частей в приложении. Второй способ применения веб-частей версии ASP.NET AJAX заключается в непосредственном использовании элементов управления веб-частей. Это позволяет использовать веб-части в отдельных страницах, не затрагивая приложение в целом.
Для этого достаточно зарегистрировать пространство имен Microsoft.Web.Preview.UI.Controls.WebParts. Вставьте следующий фрагмент в элемент в файле Web.config:




(add
namespace="Microsoft.Web.Preview.UI.Controls.WebParts"
assembly="Microsoft.Web.Preview"
tagPrefix="ajax" /)



Теперь вы можете обращаться к элементам ASP.NET AJAX Web Parts, используя префикс ajax, например: .

В этой главе будет использоваться первый способ (основанный на отображении тегов), поэтому нам не потребуется вводить в употребление дополнительный префикс.


Не забудьте добавить элемент в файл Web.config, прежде чем приступить к опробованию примера из этой главы. Помните также, что он отобразит все элементы управления Web Parts на веб-сайте.

Теперь можно приступать к созданию страницы ASP.NET с поддержкой веб-частей ASP.NET AJAX. Как обычно, нам потребуется элемент управления ScriptManager. Кроме того, чтобы активировать поддержку веб-частей, необходимо добавить элемент управления WebPartManager:
(asp:WebPartManager ID="WebPartManager1" runat="server" /)

Зоны веб-частей – это области на странице, где могут появляться вебчасти – в сущности, они являются контейнерами для веб-частей. Вы можете перемещать веб-части между зонами, а также скрывать или показывать зоны, чтобы скрывать или показывать веб-части, расположенные в них. Создаются зоны с помощью элемента управления WebPartZone и его дочернего элемента , в котором размещается содержимое веб?части. Ниже приводится объявление двух зон вебчастей, которые содержат элементы управления – Calendar и Wizard:
(asp:WebPartZone ID="WebPartZone1" HeaderText="Zone 1" runat="server")

(asp:Calendar ID="Calendar1" runat="server")(/asp:Calendar)

(/asp:WebPartZone)
(asp:WebPartZone ID="WebPartZone2" HeaderText="Zone 2" runat="server")

(asp:Wizard ID="Wizard1" runat="server")

(asp:WizardStep ID="Step1" runat="server" Title="Step 1" /)
(asp:WizardStep ID="Step2" runat="server" Title="Step 2" /)

(/asp:Wizard)

(/asp:WebPartZone)

Чтобы получить возможность перетаскивать веб-части мышью, необходимо в свойство DisplayMode элемента управления WebPartManager записать значение DesignDisplayMode.


Режим отображения нельзя установить декларативно, но нам поможет следующий серверный программный код на C#:
void Page_Init ()
{
WebPartManager1.DisplayMode =
Microsoft.Web.Preview.UI.Controls.WebParts.WebPartManager.DesignDisplayMode;
}

В примере 21.1 содержится полный код этого примера. Самый первый запуск примера будет происходить с заметной задержкой, так как в это время ASP.NET выполняет настройку базы данных, где будет сохраняться информация о веб-частях. При перемещении веб-части или при закрытии зоны информация о состоянии веб-частей сохраняется между сеансами броузера.
Пример 21.1. Веб?части в ASP.NET AJAX
WebParts.aspx
<%@ Page Language="C#" %>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1?transitional.dtd">
ASP.NET AJAX

(body)
(asp:ScriptManager ID="ScriptManager1" runat="server" /)

(asp:WebPartManager ID="WebPartManager1" runat="server" /)



(asp:WebPartZone ID="WebPartZone1" HeaderText="Zone 1"
runat="server")

(asp:Calendar ID="Calendar1" runat="server")(/asp:Calendar)

(/asp:WebPartZone)

(asp:WebPartZone ID="WebPartZone2" HeaderText="Zone 2"
runat="server")

(asp:Wizard ID="Wizard1" runat="server")

(asp:WizardStep ID="Step1" runat="server"
Title="Step 1" /)
(asp:WizardStep ID="Step2" runat="server"
Title="Step 2" /)

(/asp:Wizard)

(/asp:WebPartZone)



(/body)


Оцените статью: (0 голосов)
0 5 0


Вернуться в раздел: ASP.NET AJAX / Веб-части