Exemplarische Vorgehensweise: Implementieren von Webparts-Personalisierung mit einem Benutzersteuerelement
Aktualisiert: November 2007
Diese exemplarische Vorgehensweise veranschaulicht die Erstellung eines ASP.NET-Benutzersteuerelements, das auf Webparts-Personalisierung basiert, um benutzerspezifische Standardwerte auf einer Webseite bereitzustellen.
ASP.NET-Webparts ermöglichen das Erstellen von Webseiten mit modularem Layout, deren Darstellung und Inhalt nach Belieben angepasst werden können. Mit der Personalisierung, einem zentralen Webparts-Feature, können Sie benutzerspezifische Einstellungen für jede Seite speichern. Außerdem können Sie diese Einstellungen für zukünftige Browsersitzungen wiederverwenden.
Mit Webparts und der Personalisierung können Sie Webseiten erstellen, die ein für viele Webanwendungen nützliches Feature beinhalten: die Möglichkeit, benutzerspezifische Standardwerte in einem Formular bereitzustellen. In dieser exemplarischen Vorgehensweise wird veranschaulicht, wie durch Implementieren eines Benutzersteuerelements, das als personalisierbares Webparts-Steuerelement behandelt werden kann, benutzerspezifische Standardwerte bereitgestellt werden können. Dieser Entwicklungsansatz erweist sich z. B. dann als hilfreich, wenn Sie eine Anwendung für Kundendienstmitarbeiter zum Ausfüllen von Onlineformularen erstellen. Mit Webparts und den Personalisierungsmöglichkeiten kann eine Seite alle Agents erkennen. Das Benutzersteuerelement ermöglicht allen Agents das Speichern von Standardwerten für die Formularfelder; bei weiteren Besuchen der Seite werden diese Standardwerte automatisch eingetragen.
Hinweis: |
---|
Das in dieser exemplarischen Vorgehensweise erstellte Benutzersteuerelement erbt nicht von der WebPart-Klasse. In dieser exemplarischen Vorgehensweise erfahren Sie jedoch, wie ein Benutzersteuerelement als WebPart-Steuerelement fungieren kann. Im Verlauf der exemplarischen Vorgehensweise fügen Sie das Benutzersteuerelement einer WebPartZoneBase-Zone hinzu. Dies ermöglicht ASP.NET, das Benutzersteuerelement in ein GenericWebPart-Steuerelement einzubinden. Das Benutzersteuerelement kann dann wie jedes andere WebPart-Steuerelement eingesetzt werden und ermöglicht die Verwendung der Personalisierung. |
In dieser exemplarischen Vorgehensweise werden die folgenden Themen behandelt:
Erstellen eines Benutzersteuerelements mit personalisierbaren Eigenschaften, dessen Werte im Langzeitspeicher gespeichert werden können.
Anzeigen von benutzerspezifischen Standardwerten auf einem Formular in einer Webseite.
Arbeiten mit dem Benutzersteuerelement in einer Zone als echtes WebPart-Steuerelement.
Hinweis: Dieser Anwendungstyp kann mit ASP.NET-Profilen entwickelt werden. In diesem Fall speichern Sie jedoch keine Informationen über den Benutzer, die für die gesamte Anwendung benötigt werden, wie dies bei einer Warenkorb-Anwendung der Fall ist. Stattdessen speichern Sie benutzerspezifische Einstellungen oder Einstellungen für jedes Steuerelement auf der Grundlage einzelner Seiten. Weitere Informationen hierzu finden Sie unter Übersicht über ASP.NET-Profileigenschaften.
Vorbereitungsmaßnahmen
Für die Durchführung dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:
Internetinformationsdienste (IIS) müssen auf dem Computer installiert und konfiguriert sein, der die Site hostet. Ausführliche Informationen zur Installation und Konfiguration von IIS finden Sie in der IIS-Hilfe, die in der Installation enthalten ist, oder in der IIS-Onlinedokumentation auf der Microsoft TechNet-Site (Internet Information Services 6.0 Technical Resources).
Eine ASP.NET-Website, die einzelne Benutzer identifizieren kann. Wenn Sie bereits eine solche Site konfiguriert haben, können Sie die Site als Ausgangspunkt für diese exemplarische Vorgehensweise verwenden. Andernfalls finden Sie ausführliche Informationen zum Erstellen eines virtuellen Verzeichnisses oder einer virtuellen Website unter Gewusst wie: Erstellen und Konfigurieren von virtuellen Verzeichnissen in IIS 5.0 und 6.0.
Ein konfigurierter Personalisierungsanbieter und eine konfigurierte Datenbank. Die Webparts-Personalisierung ist in der Standardeinstellung aktiviert und verwendet den SQL-Personalisierungsanbieter (SqlPersonalizationProvider) mit der Microsoft SQL Server Express Standard Edition zum Speichern von Personalisierungsdaten. In dieser exemplarischen Vorgehensweise werden SSE und der Standard-SQL-Anbieter verwendet. Wenn Sie SSE bereits installiert haben, wird keine Konfigurierung benötigt. SSE ist mit Microsoft Visual Studio 2005 als optionaler Teil der Installation oder als kostenloser Download verfügbar. Ausführliche Informationen finden Sie auf der Microsoft SQL Server-Webseite. Um eine Vollversion von SQL Server verwenden zu können, müssen Sie eine Datenbank für ASP.NET-Anwendungsdienste installieren und konfigurieren sowie den SQL-Personalisierungsanbieter für eine Verbindung mit dieser Datenbank konfigurieren. Ausführliche Informationen finden Sie unter Erstellen und Konfigurieren der Datenbank für die Anwendungsdienste für SQL Server. Sie können auch einen benutzerdefinierten Anbieter für Datenbanken oder Speichermöglichkeiten erstellen und konfigurieren, die nicht SQL-basiert sind. Weitere Informationen sowie ein Codebeispiel finden Sie unter Implementieren eines Mitgliedschaftsanbieters.
Erstellen eines personalisierbaren Benutzersteuerelements
In diesem Teil der exemplarischen Vorgehensweise erstellen Sie ein Benutzersteuerelement, mit dem die Benutzeroberfläche für ein Informationsformular eines Agents bereitgestellt wird. Außerdem werden vom Steuerelement personalisierbare Eigenschaften für den Namen sowie Telefondaten verfügbar gemacht.
Hinweis: |
---|
Die Webparts-Personalisierung ist bereits standardmäßig aktiviert; sie muss nicht separat aktiviert werden. Weitere Informationen zur Personalisierung finden Sie unter Übersicht über die Webparts-Personalisierung. |
So erstellen Sie personalisierbare Eigenschaften für das Benutzersteuerelement
Erstellen Sie in einem Text-Editor eine neue Datei, und fügen Sie am Anfang der Datei die folgende Steuerelementdeklaration sowie die Start- und Endtags <script> ein.
<%@ control language="VB" classname="AccountUserControl" %> <script runat="server"> </script>
<%@ control language="C#" classname="AccountUserControl" %> <script runat="server"> </script>
Fügen Sie Code zum Erstellen der personalisierbaren UserName-Eigenschaft und der personalisierbaren Phone-Eigenschaft in die <script>-Tags ein, wie im folgenden Beispiel veranschaulicht.
Hinweis: Jede Eigenschaft verfügt über ein Personalizable-Attribut. Dadurch kann die Webparts-Personalisierung die Eigenschaftenwerte in einer Datenbank speichern.
<Personalizable()> _ Property UserName() As String Get If Textbox1.Text Is Nothing Or Textbox1.Text.Length < 0 Then Return String.Empty Else Return Textbox1.Text End If End Get Set(ByVal value As String) Textbox1.Text = value End Set End Property <Personalizable()> _ Property Phone() As String Get If Textbox2.Text Is Nothing Or Textbox2.Text.Length < 0 Then Return String.Empty Else Return Textbox2.Text End If End Get Set(ByVal value As String) Textbox2.Text = value End Set End Property
[Personalizable] public string UserName { get { if(Textbox1.Text == null | Textbox1.Text.Length < 0) return String.Empty; else return Textbox1.Text; } set { Textbox1.Text = value; } } [Personalizable] public string Phone { get { if(Textbox2.Text == null | Textbox2.Text.Length < 0) return String.Empty; else return Textbox2.Text; } set { Textbox2.Text = value; } }
Sicherheitshinweis: Dieses Steuerelement verfügt über ein Textfeld, das Benutzereingaben akzeptiert. Dies stellt ein potenzielles Sicherheitsrisiko dar. Standardmäßig werden die Benutzereingaben von ASP.NET-Webseiten validiert, um sicherzugehen, dass die Eingabe keine Skript- oder HTML-Elemente enthält. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.
Speichern Sie die Datei unter dem Namen AccountUserControlCS.ascx oder AccountUserControlVB.ascx (je nach der von Ihnen verwendeten Sprache) im Stammverzeichnis der Website.
Nachdem Sie nun über personalisierbare Eigenschaften zum Speichern von Standardwerten verfügen, können Sie dem Benutzersteuerelement Steuerelemente für die Benutzeroberfläche zum Anzeigen des Namens und der Telefonnummer eines Benutzers hinzufügen.
So fügen Sie dem Benutzersteuerelement Steuerelemente für die Benutzeroberfläche hinzu
Fügen Sie unterhalb der <script>-Tags ein Label-Steuerelement sowie ein in <div>-Tags eingebundenes TextBox-Steuerelement ein, das den Namen des Benutzers enthält, wie im folgenden Codebeispiel dargestellt:
<div> <asp:label id="Label1" runat="server">Name</asp:label> <asp:textbox id="Textbox1" runat="server" /> </div>
Fügen Sie unterhalb des gerade hinzugefügten Steuerelements ein Label-Steuerelement sowie ein in <div>-Tags eingebundenes TextBox -Steuerelement ein, das die Telefonnummer des Benutzers enthält, wie im folgenden Beispiel dargestellt:
<div> <asp:label id="Label2" runat="server">Phone</asp:label> <asp:textbox id="Textbox2" runat="server" /> </div>
Fügen Sie unterhalb des gerade hinzugefügten Steuerelements ein in <div>-Tags eingebundenes <asp:button>-Element ein, um die Benutzerinformationen durch Ausführen eines Postbacks zu speichern.
<div> <asp:button id="Button1" runat="server" text="Save Form Values" /> </div>
Speichern Sie die Datei.
Verweisen auf das Benutzersteuerelement als Webparts-Steuerelement
Nachdem Sie nun ein Benutzersteuerelement mit personalisierbaren Eigenschaften erstellt haben, können Sie eine ASP.NET-Webseite erstellen, die das Benutzersteuerelement als Webparts-Steuerelement hostet. Das Hosten des Steuerelements als Webparts-Steuerelement ist für die Verwendung der Personalisierungsfeatures erforderlich.
So verweisen Sie auf das Benutzersteuerelement als Webparts-Steuerelement
Erstellen Sie in einem Text-Editor eine neue Datei, und fügen Sie am Anfang der Datei die folgende Seitendeklaration ein:
<%@ page language="VB" %>
<%@ page language="C#" %>
Fügen Sie unterhalb der Seitendeklaration eine Deklaration hinzu, um auf das zuvor erstellte Benutzersteuerelement zu verweisen, wie im folgenden Beispiel veranschaulicht:
<%@ register tagprefix="uc1" tagname="AccountUserControl" src="AccountUserControlvb.ascx"%>
<%@ register tagprefix="uc1" tagname="AccountUserControl" src="AccountUserControlcs.ascx"%>
Fügen Sie die folgende einfache Seitenstruktur unterhalb des Verweises auf das Steuerelement hinzu, um das Benutzersteuerelement als Webparts-Steuerelement zu hosten.
Hinweis: Damit das Benutzersteuerelement die Funktion eines Webparts-Steuerelements übernehmen kann, muss die Seite ein <asp:webpartmanager>-Element enthalten, und das Benutzersteuerelement muss zwischen einem <asp:webpartzone>-Element und einem nachfolgenden <zonetemplate>-Element enthalten sein.
<html> <head runat="server"> <title>Personalizable User Control</title> </head> <body> <form id="form1" runat="server"> <asp:webpartmanager id="WebPartManager1" runat="server" /> <asp:webpartzone id="zone1" runat="server" headertext="Main"> <zonetemplate> <uc1:AccountUserControl runat="server" id="accountwebpart" title="Agent Information" /> </zonetemplate> </asp:webpartzone> </form> </body> </html>
Speichern Sie die Datei unter dem Namen Hostaccountcontrol.aspx im gleichen Verzeichnis wie das Benutzersteuerelement.
Sie verfügen nun über ein personalisierbares Benutzersteuerelement, auf das als Webparts-Steuerelement in einer Web Forms-Seite verwiesen wird. Abschließend müssen Sie das Benutzersteuerelement noch testen.
So testen Sie das personalisierbare Benutzersteuerelement
Laden Sie die Hostaccountcontrol.aspx-Seite in einem Browser.
Geben Sie Werte im Feld Name und im Feld Telefon ein, und klicken Sie auf die Schaltfläche Formularwerte speichern.
Schließen Sie den Browser.
Laden Sie die Seite erneut in einem Browser.
Die zuvor eingegebenen Werte sollten im Formular angezeigt werden. Dabei handelt es sich um die zuvor in den personalisierbaren Eigenschaften gespeicherten Werte, die beim erneuten Laden der Seite im Browser aus der Datenbank abgerufen wurden.
Geben Sie neue Werte in das Formular ein, aber klicken Sie nicht auf die Schaltfläche, um diese zu speichern.
Schließen Sie den Browser.
Laden Sie die Seite erneut in einem Browser.
Die ursprünglich von Ihnen eingegebenen und in den personalisierbaren Eigenschaften gespeicherten Werte sollten wieder im Formular angezeigt werden, da Sie die neuen Werte nicht gespeichert haben.
Nächste Schritte
In dieser exemplarischen Vorgehensweise wurden die grundlegenden Aufgaben beim Erstellen eines Benutzersteuerelements mit personalisierbaren Eigenschaften veranschaulicht. Sie haben ein Steuerelement erstellt, mit dem Sie benutzerspezifische Einstellungen für bestimmte Steuerelemente und Seiten speichern können, und mit dem Sie diese gespeicherten Einstellungen anzeigen können, wenn der Benutzer die Seite in einer neuen Browsersitzung erneut aufruft. Hier einige Vorschläge für die weitere Vorgehensweise:
Informieren Sie sich über die anderen Komponenten, die für das Erstellen einer Webparts-Seite verwendet werden. Eine Einführung finden Sie unter Exemplarische Vorgehensweise: Erstellen einer Webparts-Seite.
Rufen Sie weitere Informationen zum Arbeiten mit Benutzersteuerelementen ab. Ausführliche Informationen finden Sie unter Übersicht über ASP.NET-Benutzersteuerelemente.
Rufen Sie weitere Informationen zum Erstellen eigener benutzerdefinierter Webparts-Steuerelemente ab, die eine bessere Programmsteuerung als Benutzersteuerelemente bieten und alle Webparts-Features bereitstellen. Weitere Informationen finden Sie unter Gewusst wie: Behandeln eines Benutzersteuerelements als Webparts-Steuerelement.