6.2.3 Учебник: Поставщик персонализации веб-частей
MySQL Connector/NET предоставляет поставщик персонализации веб-частей, который позволяет использовать сервер MySQL для хранения данных персонализации.
Эта функция была добавлена в Connector/NET 6.9.0.
Этот учебник демонстрирует, как настроить поставщика персонализации веб-частей с помощью Connector/NET.
Минимальные требования
Веб-сайт или веб-приложение ASP.NET с поставщиком членства
.NET Framework 3.0
MySQL 5.5
Настройка поставщика персонализации веб-частей MySQL
Для настройки поставщика выполните следующие действия:
Добавьте ссылки на
MySql.DataиMySql.Webв проект веб-сайта или веб-приложения.-
Включите поставщика персонализации Connector/NET в раздел
system.webфайлаweb.config.<webParts> <personalization defaultProvider="MySQLPersonalizationProvider"> <providers> <clear/> <add name="MySQLPersonalizationProvider" type="MySql.Web.Personalization.MySqlPersonalizationProvider, MySql.Web, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" /> </providers> <authorization> <allow verbs="modifyState" users="*" /> <allow verbs="enterSharedScope" users="*"/> </authorization> </personalization> </webParts>
Создание элементов управления веб-частью
Для создания элементов управления веб-частью выполните следующие шаги:
Создайте веб-приложение с помощью ASP.NET членства Connector/NET. Подробная информация об этом представлена в разделе Раздел 6.2.1, «Учебник: Connector/NET ASP.NET членство и поставщик ролей».
Создайте новую страницу ASP.NET, а затем переключитесь в режим «Макет».
Из панели инструментов перетащите элемент управления WebPartManager на страницу.
Теперь определите HTML-таблицу с тремя столбцами и одной строкой.
С панели инструментов Веб-части перетащите и поместите элемент управления
WebPartZoneв первый и второй столбцы.С панели инструментов Веб-части перетащите и поместите элемент управления
CatalogZoneс элементами управленияPageCatalogPartиEditorZoneв третий столбец.-
Добавьте элементы управления в
WebPartZone, которые должны выглядеть аналогично следующему примеру:<table> <tr> <td> <asp:WebPartZone ID="LeftZone" runat="server" HeaderText="Left Zone"> <ZoneTemplate> <asp:Label ID="Label1" runat="server" title="Left Zone"> <asp:BulletedList ID="BulletedList1" runat="server"> <asp:ListItem Text="Item 1"></asp:ListItem> <asp:ListItem Text="Item 2"></asp:ListItem> <asp:ListItem Text="Item 3"></asp:ListItem> </asp:BulletedList> </asp:Label> </ZoneTemplate> </asp:WebPartZone> </td> <td> <asp:WebPartZone ID="MainZone" runat="server" HeaderText="Main Zone"> <ZoneTemplate> <asp:Label ID="Label11" runat="server" title="Main Zone"> <h2>This is the Main Zone</h2> </asp:Label> </ZoneTemplate> </asp:WebPartZone> </td> <td> <asp:CatalogZone ID="CatalogZone1" runat="server"> <ZoneTemplate> <asp:PageCatalogPart ID="PageCatalogPart1" runat="server" /> </ZoneTemplate> </asp:CatalogZone> <asp:EditorZone ID="EditorZone1" runat="server"> <ZoneTemplate> <asp:LayoutEditorPart ID="LayoutEditorPart1" runat="server" /> <asp:AppearanceEditorPart ID="AppearanceEditorPart1" runat="server" /> </ZoneTemplate> </asp:EditorZone> </td> </tr> </table> -
Вне HTML-таблицы добавьте раскрывающийся список, две кнопки и метку следующим образом.
<asp:DropDownList ID="DisplayModes" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DisplayModes_SelectedIndexChanged"> </asp:DropDownList> <asp:Button ID="ResetButton" runat="server" Text="Reset" OnClick="ResetButton_Click" /> <asp:Button ID="ToggleButton" runat="server" OnClick="ToggleButton_Click" Text="Toggle Scope" /> <asp:Label ID="ScopeLabel" runat="server"></asp:Label>
-
Следующий код заполняет список режимов отображения, отображает текущий контекст, сбрасывает состояние персонализации, переключает контекст (между пользователем и общим контекстом) и изменяет режим отображения.
public partial class WebPart : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { foreach (WebPartDisplayMode mode in WebPartManager1.SupportedDisplayModes) { if (mode.IsEnabled(WebPartManager1)) { DisplayModes.Items.Add(mode.Name); } } } ScopeLabel.Text = WebPartManager1.Personalization.Scope.ToString(); } protected void ResetButton_Click(object sender, EventArgs e) { if (WebPartManager1.Personalization.IsEnabled && WebPartManager1.Personalization.IsModifiable) { WebPartManager1.Personalization.ResetPersonalizationState(); } } protected void ToggleButton_Click(object sender, EventArgs e) { WebPartManager1.Personalization.ToggleScope(); } protected void DisplayModes_SelectedIndexChanged(object sender, EventArgs e) { var mode = WebPartManager1.SupportedDisplayModes[DisplayModes.SelectedValue]; if (mode != null && mode.IsEnabled(WebPartManager1)) { WebPartManager1.DisplayMode = mode; } } }
Тестирование изменений веб-части
Используйте следующие шаги для проверки ваших изменений:
-
Запустите приложение и откройте страницу веб-части. Страница должна выглядеть аналогично примеру на рисунке, где кнопка установлена в значение
Shared. На странице также присутствует раскрывающийся список, кнопка и элементы управления «Левая зона» и «Основная зона».Рисунок 6.3 Страница веб-части
Изначально, когда учетная запись пользователя не авторизована, по умолчанию используется контекст Общий. Для изменения настроек элементов управления веб-частями требуется авторизация учетной записи пользователя. На следующем рисунке показан пример, когда авторизованный пользователь может настроить элементы управления с помощью раскрывающегося списка «Просмотреть». Варианты в списке —
Design,CatalogиEdit.Рисунок 6.4 Элементы управления авторизованного пользователя
Нажмите , чтобы вернуть приложение в общий контекст.
-
Теперь вы можете персонализировать зоны, используя режимы отображения
EditилиCatalogна уровне конкретного пользователя или всех пользователей. На следующем рисунке выбран режимCatalogиз раскрывающегося списка, который включает элемент управления зоной «Каталог», добавленный ранее.Рисунок 6.5 Персонализация зон
© 2025 Oracle
Licensed under the GPLv2 License.