Добавление WebParts в зоны

Оценить
(1 голос)

Теперь вы готовы добавить WebParts в зоны, которые вы определили. Для этого есть не­сколько способов. Вы можете создать реальные элементы управления, которые реализуют класс WebPart. Это даст максимальную гибкость для создания WebParts. Это также позво­лит вам создать для ваших WebParts настройку пользователями. Эта настройка видна тогда, когда пользователь редактирует WebParts. Это самый сложный способ. Разумеется, он ре­комендован для разработчиков порталов. Другой (быстрый) способ создания WebParts — это применение пользовательских элементов управления или обычных элементов управле­ния ASP.NET. Например, когда вы перетаскиваете на форму такой элемент управления, как Label, то ASP.NET определяет WebParts вокруг этого элемента. Это дает легкий способ создания WebParts.

Для примера вы будете реализовывать последний способ. Сначала вы создадите WebParts для клиентских ссылок. Эта WebParts даст целый набор ссылок, используемых для управ­ления клиентом. Далее приведена схема процесса создания этой WebParts:

1.   Перетащить элемент управления ASP Label внутрь элемента управления WebPartZone (для ссылок пользователя).

2.   Эта метка автоматически превратится в элемент управления WebPart. Вы можете видеть это в разметке. Элемент <ZoneTemplate> добавлен внутри узла <asp: WebPartZone>. Внутри находится элемент управления Label, который вы добавили на форму.

3.   Настройте заголовок для WebParts. Для этого добавьте атрибут title к элементу управления Label. Этот атрибут подхватывается ASP и применяется к WebParts.

I

4.   Добавьте несколько ссылок в пределах объявления <asp:Label>. Окончательная раз- метка представлена в листинге 14.2. Здесь мы опустили информацию о стилях, которая обычно находится в зоне WebParts; это сделано в интересах доходчивости.

<asp:WebPartZone ID="WebPartZoneCustomerLinks" runat="server">

<ZoneTemplate>

<asp:Label title="Customer Links" ID="Labell" runat="server" Text="Label"> <a href="FindCustomer.aspx">Find Customer</a><br />

<a href="FindOrder. aspx">Find Order</axbr />

<a href="CustomerDiscounts.aspxM>Customer Discounts</a><br />

</asp:Label>

</ZoneTemplate>

</asp:WebPartZone>

Повторите этот метод для еще нескольких WebParts. Для нашего примера создайте Web­Parts: Active Shoppers, Help, Edit Mode indicator, Find Customer Orders и Top Products.

Вы можете попытаться создать пару этих элементов как пользовательские элементы управ­ления (дополнительную информацию по пользовательским элементам управления см. в разд. "Работа с элементами управления ASP.NET" далее в этой главе). Можете также по­пытаться создать один или два этих WebParts как таблицы, вложенные внутри элемента

управления Label. На рис. 14.50 показано то, как ваша страница должна теперь выглядеть в визуальном конструкторе.

Разрешение пользователям настраивать страницу

Есть много способов разрешить пользователям настраивать внешний вид и поведение WebParts. Вы можете создать редакторы для ваших элементов управления, которые позво­лят вам делать полную настройку каждого элемента управления. У вас могут быть WebParts, которые способны подключаться к другим WebParts или вести обмен с ними. Им обычно требуется некоторая настройка. Вы можете позволить пользователям выбирать элементы управления из каталога (для того чтобы они указали, какие элементы управления они хотели бы видеть на странице). Обычным делом является также разрешение пользова­телям минимизировать, закрывать и перемещать ваши элементы управления из зоны в зону. Здесь мы рассмотрим несколько этих вариантов.

Сначала давайте настроим нашу страницу WebParts для того, чтобы позволить пользовате­лям добавлять WebParts на страницу так, как они сочтут необходимым. То есть пользовате­ли смогут определять, какие WebParts они хотят видеть на странице и где они хотят их ви­деть. Следующий список определяет шаги, необходимые для модификации нашей страницы WebParts таким образом, чтобы сделать возможным этот уровень пользовательской на­стройки:

I.   Мы начинаем со страницы WebParts, которая включает две WebParts на основе меток: Active Shoppers и Find Customer Orders. Страница содержит также три WebParts на основе пользовательских элементов управления: Help, Customer Links и Top Products. Описание: C:\Users\Артём\Desktop\media\image363.jpeg

Именно последние три мы хотим отдать на усмотрение пользователя. Пользователь сможет добавлять и удалять эти элементы со страницы. Ваш первый шаг— удалить их со страницы. Мы скоро вернем их обратно.

2.   Вы используете WebParts с названием CatalogZone для активирования управления группой (или каталогом) WebParts. Когда страница была скомпонована впервые, мы до­бавили этот WebParts в самую правую зону. Если у вас его нет, добавьте его.

3.   Затем внутри WebParts с названием CatalogZone добавьте DeclarativeCatalogPart. Этот элемент управления указывает, что вы будете объявлять все WebParts, которыми можно управлять в этой зоне. Есть аналогичные WebParts вроде PageCatalogPart, который управляет всеми WebParts на странице.

4.   Следующий шаг— объявить WebParts, которые будут управляться внутри каталога. Вы делаете это при помощи размещения определения каждого пользовательского элемента управления (или WebParts) внутри раздела DeclarativeCatalogPart. Ваша разметка должна выглядеть примерно так:

<asp:CatalogZone ID="CatalogZonel" runat="server"

HeaderText="Manage WebParts">

<ZoneTemplate>

<asp:DeclarativeCatalogPart Title="Select a WebParts"

ID="DeclarativeCatalogPartl" runat="server"> <WebPartsTemplate>

<ucl:TopProducts title="Top Products" ID="TopProductsl"

runat="server" />

<uc2:HelpControl title="Help" ID="HelpControll" runat="server" /> <uc3:CustomerLinks title="Customer Links" ID="CustomerLinksl"

runat="server" />

</WebPartsTemplate>

</asp:DeclarativeCatalogPart>

</ZoneTemplate>

</asp:CatalogZone>

5.   Последний шаг — разрешить пользователю активировать редактирование для включения этого каталога. Для этого мы будем использовать кнопку LinkButton. Добавьте элемент управления LinkButton в правую нижнюю часть страницы. Создайте обработчик собы­тия щелчка для элемента управления LinkButton. Внутри этого обработчика события вам нужно переключать состояние отображения страницы между режимом Browse (нормальное представление) и режимом Catalog (пользовательское представление выде­ления WebParts). Это делается в нижеследующем коде:

protected void LinkButtonChangeContent_Click(object sender, EventArgs e) { if (LinkButtonChangeContent.Text == "Change Content") {

// EditorZoneMain.

WebPartManagerMain.DisplayMode =

WebPartManagerMain.SupportedDisplayModes["Catalog"];

} else {

WebPartManagerMain.DisplayMode =

WebPartManagerMain.SupportedDisplayModes["Browse"];

}

Вот и все. Теперь вы должны запустить страницу и позволить пользователю произвести вы­бор этих трех WebParts. На рис. 14.51 показана запущенная в браузере страница. Пользова­тель щелкнул по ссылке Change Content внизу справа для запуска менеджера WebParts. Пользователь может выбрать WebParts и указать, в какую зону страницы она должна быть добавлена. Обратите также внимание, что WebParts с названием Top Products уже добав­лена на страницу пользователем. Наконец, пользователь может при желании добавить на страницу несколько вариантов одной и той же WebParts.

Рис. 14.51. Использование каталога WebParts во время выполнения

Еще одна стандартная пользовательская настройка — это разрешение перемещения WebParts между зонами и относительно друг друга. Когда пользователь находится в режи­ме каталога (как в предыдущем примере), то эта функциональная возможность включена. Однако бывают случаи, когда вы добавляете эту функцию для пользователей, но требуете повышенного уровня доверия при добавлении и удалении WebParts со страницы.

Для того чтобы разрешить пользователям менять только компоновку страницы WebParts, вам нужно сделать несколько шагов: Описание: image364

1.   Добавить на страницу элемент управления EditorZone. Добавление этого элемента управления создает зону, куда вы можете поместить EditorParts. Обычно вы показывае­те эту зону тогда, когда ваша страница находится в режиме редактирования. В данном примере предположим, что вы используете эту зону, но не собираетесь показывать ее пользователям.

2.   Добавьте элемент управления LayoutEditorPart в только что созданную вами EditorZone. Эта WebParts позволяет включить редактирование компоновки страницы.

3.   Создайте элемент управления LinkButton, чтобы разрешить пользователю включать ре­жим редактирования страницы. Конструкция вашей формы должна выглядеть примерно так, как на рис. 14.52.

Рис. 14.52. Конструирование опций компоновки для пользователя

4.   Теперь вам нужно написать код для события щелчка LinkButton. Этот код аналогичен нашему предыдущему примеру. Вот пример:

protected void LinkButtonEditPage_Click(object sender, EventArgs e) { if (LinkButtonEditPage.Text == "Edit Layout") {

// EditorZoneMain.

WebPartManagerMain.DisplayMode =

WebPartManagerMain.SupportedDisplayModes["Edit"]; LinkButtonEditPage.Text = "Finish Edit";

} else {

WebPartManagerMain.DisplayMode =

WebPartManagerMain.SupportedDisplayModes["Browse"]; LinkButtonEditPage.Text = "Edit Layout";

}Описание: image365

Теперь вы можете запустить страницу и посмотреть результаты. Когда вы щелкнете по ссылке Edit Layout, то страница перейдет в режим Edit. Здесь пользователь может переме­щать элементы управления между зонами, передвигать их и переключать их состояние (за­крывать и открывать). На рис. 14.53 все это показано в действии.

Совет

Персонализация Web-частей между сеансами сохраняется. Если пользователи (или разработчики) закроют элементы управления, то им нужно дать способ вернуть их на­зад. Вы можете написать код для сброса персонализации страницы. Например, вы можете дать пользователю ссылку для этого. Внутри события данной ссылки вы должны будете добавить примерно такую строку кода:

WebPartManagerMain.Personalization.ResetPersonalizationState()

Работа с элементами управления ASP.NET

В Visual Studio 2008 и новой версии ASP.NET введены несколько новых элементов управ­ления и сделано множество улучшений элементов управления. Мы уже описали в этой главе несколько элементов управления ASP.NET, таких как WebParts, метки и кнопки. В после­дующих разделах мы хотим дать описание множества других элементов управления ASP.NET. Сюда входят как стандартные элементы управления, так и элементы для провер­ки, регистрации, навигации и данных. Мы потратим также определенное время на обсужде­ние определяемых пользователем элементов управления. Описание: image366

Примечание

Описание элементов управления Ajax см. в главе 17.

Обзор элементов управления ASP.NET
Стандартные элементы управления ASP.NET
Проверяющие элементы управления
Элементы управления входом в систему
Настройка аутентификации пользователей

Добавить комментарий


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.