Freigeben über


Einführung in das Club Web Site Starter Kit

 

Bill Evjen
Reuters

Juni 2005

Gilt für:
   Microsoft ASP.NET 2.0
   Visual Studio 2005
   Visual Web Developer 2005 Express Edition

Zusammenfassung: Erfahren Sie mehr über das neue Club Web Site Starter Kit, das ein in Visual Studio 2005 verfügbarer Projekttyp ist. (30 gedruckte Seiten)

Inhalte

Einführung
Ersteinrichtung des Starter Kits für die Club-Website
Erstellen einer Administratorrolle
Hinzufügen von Benutzern zur Administratorrolle
Die Gestaltungsvorlage: Standard. master
Arbeiten mit dem SiteMapDataSource-Steuerelement auf der Gestaltungsvorlage
Grundlegendes zu Websitezugriffseinschränkungen
Auflisten von Clubereignissen: Events_Calendar.aspx
Nachrichtenartikel: News_List.aspx
Seite "Fotoalben": PhotoAlbum_List.aspx
Anzeigen der registrierten Mitglieder der Anwendung: Member_List.aspx
Statische Seiten: Links.aspx und Contact.aspx
Zusammenfassung

Einführung

Mit dem Club Web Site Starter Kit können Sie ganz einfach eine Anwendung erstellen, die ihnen hilft, alle Clubs oder organization zu präsentieren und zu verwalten. Die Idee des Club Web Site Starter Kit ist es, Ihnen ein Framework bereitzustellen, mit dem Sie schnell eine lohnende Website organisieren können, die sich auf einen Club jeder Art konzentriert. Dieses Starter-Kit bietet Ihnen eine Reihe von Seiten, mit denen Sie problemlos die Details Ihres Clubs präsentieren können. Zu den Startseiten für dieses Starter Kit gehören eine Startseite, auf der eine Zusammenfassung der Nachrichten und Ereignisse Ihres Clubs, zugehörige Nachrichten- und Veranstaltungsseiten, ein Ort zum Veröffentlichen von Fotos, Registrierungsformulare, Mitgliederlisten, eine Seite für Links sowie eine Kontaktseite aufgeführt ist.

Anhand dieser kurzen Beschreibung können Sie sehen, dass in dieser Frameworkanwendung viele Funktionen bereitgestellt werden. Wenn Sie das Club Web Site Starter Kit zum ersten Mal kompilieren und ausführen, sehen Sie sich die in Abbildung 1 dargestellte Startseite an.

Aa479303.clubwebsitesk01(en-us,MSDN.10).gif

Abbildung 1. Startseite für das Starter Kit

Jede der Seiten im Club Web Site Starter Kit ist bereit, damit Sie den standardmäßigen lorem ipsum-Text durch Ihre eigenen Wörter ersetzen können. Wenn Sie dies tun, beginnen Sie mit dem Personalisierungsprozess für Ihre Clubwebsite. Wie Sie aus der Anwendung erkennen können, obwohl sie als Website für eine fiktive Fußballmannschaft (in den meisten Teilen der Welt auch als Fußballmannschaft bezeichnet) erstellt wurde, können Sie dieses Framework problemlos für eine Vielzahl von Vereinen oder Organisationen verwenden.

Das Club Web Site Starter Kit ist auch ein großartiges Lerntool. Sie können den Code anzeigen, der jede Seite der Anwendung erzeugt, und Sie werden feststellen, dass einige der stärksten Features aus der neuesten Version von ASP.NET verwendet werden. Auch wenn Sie nicht daran interessiert sind, dieses Starter Kit für eine tatsächliche Produktionswebsite zu verwenden, ist es dennoch eine wertvolle Ressource, um zu erfahren, wie Sie eine Anwendung mit ASP.NET 2.0 erstellen.

Bevor wir uns jedoch mit der Arbeit mit dieser Anwendung befassen, werfen wir zunächst einen Blick auf die Installation und den Start dieses Starter Kits.

Ersteinrichtung des Starter Kits für die Club-Website

Nachdem Sie das Club Web Site Starter Kit auf Ihrem Entwicklungsserver installiert haben, stellen Sie fest, dass sich die Installation im Abschnitt Meine Vorlagen des Dialogfelds Neue Website für Sie als Projektvorlage zur Verfügung gestellt hat. Sie können dieses Dialogfeld anzeigen, indem Sie auf Datei klicken und dann im Visual Studio-Menü Neue Website auswählen. Dieses Dialogfeld ist in Abbildung 2 dargestellt.

Aa479303.clubwebsitesk02(en-us,MSDN.10).gif

Abbildung 2. Erstellen einer neuen Clubwebsite

Nachdem Sie eine instance dieses Projekttyps erstellt haben, erstellt Visual Studio für Sie eine Projektmappe, die eine Reihe von Ordnern und Dateien enthält. Sie können alle diese erstellten Elemente im Projektmappen-Explorer von Visual Studio anzeigen, wie hier in Abbildung 3 dargestellt.

Aa479303.clubwebsitesk03(en-us,MSDN.10).gif

Abbildung 3. Die Clubwebsite-Lösung

Wie Sie in Abbildung 3 sehen können, enthält dieses Starter Kit eine Menge. Wenn Visual Studio eine instance dieses Starter Kits erstellt, stellen Sie fest, dass im Ordner App_Data keine erforderliche Kopie der ASPNETDB.mdf Datenbank vorhanden ist. Diese SQL Express-Datei wird für die Mitgliedschaft, die Rollenverwaltung und andere ASP.NET 2.0-Systeme benötigt, die von dieser Anwendung verwendet werden. Als Nächstes sehen wir uns an, wie diese Datei automatisch für Sie erstellt wird.

Erstellen einer Administratorrolle

Da wir eine Administratorrolle für die Anwendung erstellen und mindestens einen Benutzer in diese Rolle versetzen müssen, klicken Sie im Projektmappen-Explorer von Visual Studio auf die Schaltfläche ASP.NET Konfiguration, um das ASP.NET Websiteverwaltungstool zu öffnen. Sie können dieses Verwaltungstool auch öffnen, indem Sie im Visual Studio-Menü Website ASP.NET Verwaltung auswählen. Klicken Sie als ASP.NET Websiteverwaltungstool auf die Registerkarte Sicherheit, die das Tool bereitstellt. Anschließend erhalten Sie Folgendes:

Aa479303.clubwebsitesk04(en-us,MSDN.10).gif

Abbildung 4. Verwaltungsseite

Wenn Sie dieses Tool im Browser starten, wird auch die erforderliche ASPNETDB.mdf Datei erstellt, wenn sie nicht im Ordner App_Data gefunden wird. Nachdem Sie das ASP.NET-Websiteverwaltungstool gestartet haben, können Sie dies selbst sehen, indem Sie im Visual Studio-Projektmappen-Explorer auf die Schaltfläche Aktualisieren klicken und den Ordner App_Data erweitern. Hier finden Sie nun die ASP.NET Datenbank, die unter anderem von den Mitgliedschafts- und Rollenverwaltungssystemen verwendet wird.

Von Anfang an können Sie sehen, dass keine Benutzer oder Rollen für die Anwendung eingerichtet sind. Diese Anwendung basiert darauf, dass ein Benutzer Teil der Rolle Administratoren ist, um die Bearbeitung der in der Website enthaltenen Informationen zu verwalten. Sie können so viele Benutzer in der Administratorrolle haben, wie Sie für notwendig erahnen. Zum Einrichten der Rolle und der Benutzer besteht der erste Schritt darin, die Rolle "Administratoren" zu erstellen.

Sie können die Rolle Administratoren über das ASP.NET-Websiteverwaltungstool erstellen, indem Sie auf der Seite Sicherheit auf den Link Rollen erstellen oder verwalten klicken. Auf der Bereitgestellten Seite für die Rollenerstellung können Sie einfach den Namen der Rolle angeben. Nennen Sie in diesem Fall die Rolle Administratoren , wie in Abbildung 5 dargestellt.

Aa479303.clubwebsitesk05(en-us,MSDN.10).gif

Abbildung 5. Erstellen der Rolle "Administratoren"

Klicken Sie auf die Schaltfläche Rolle hinzufügen , um die Rolle der Anwendung hinzuzufügen. Auf der nächsten Seite wird die Rolle aufgelistet. In dieser Ansicht (Abbildung 6) können Sie die Rolle verwalten, indem Sie Benutzer hinzufügen und entfernen. Sie können auch mithilfe dieser Seite eine Rolle aus dem System löschen.

Aa479303.clubwebsitesk06(en-us,MSDN.10).gif

Abbildung 6. Hinzufügen einer Rolle

Hinzufügen von Benutzern zur Administratorrolle

Nachdem Sie nun über die Rolle "Administratoren" verfügen, besteht der nächste Schritt darin, der Rolle einen oder mehrere Benutzer hinzuzufügen. Klicken Sie hierzu auf der Seite Sicherheit des ASP.NET-Websiteverwaltungstools auf den Link Benutzer erstellen . Das Formular "Benutzer erstellen" ist in Abbildung 7 dargestellt.

Aa479303.clubwebsitesk07(en-us,MSDN.10).gif

Abbildung 7. Hinzufügen von Administratoren

Wenn Sie Ihren Benutzer hier erstellen, stellen Sie sicher, dass das Kontrollkästchen Administratoren aktiviert ist, um diesen Benutzer der Rolle "Administratoren" hinzuzufügen. In diesem Dialogfeld können Sie auch beliebig viele reguläre Benutzer (Nichtadministratoren) hinzufügen. Die andere Möglichkeit besteht darin, diese anderen Benutzer einfach ihre eigenen Registrierungen auf der Website selbst durchführen zu lassen. Dies wird später in diesem Artikel veranschaulicht. Es ist wichtig zu beachten, dass ASP.NET 2.0 standardmäßig ein sicheres Kennwort erfordert, das mindestens acht Zeichen enthält, einschließlich einer Kombination aus Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen (z. B. !, #, $, %).

Wenn Sie wie in Abbildung 7 gezeigt auf die Schaltfläche Benutzer erstellen klicken, wird ein Anwendungsadministrator für Sie erstellt. Nachdem Sie diesen Benutzer eingerichtet haben, werfen wir einen Blick zurück auf das Starter Kit und führen einige der Elemente durch, aus denen diese Anwendung besteht.

Die Gestaltungsvorlage: Standard. master

Die erste Seite, die wir in dieser Anwendung betrachten, ist die master Seite der Anwendung. ASP.NET 2.0 bietet eine Möglichkeit zum Erstellen von Vorlagenseiten. Dies bedeutet, dass Sie eine master Vorlage oder eine master Seite erstellen können, die dann auf jede einzelne von Ihnen festgelegte Seite angewendet werden kann. Das Club Web Site Starter Kit nutzt master Seiten.

Obwohl die Seite nicht unbedingt sichtbar Default.master ist, verwendet das Club Web Site Starter Kit das verfügbare Inlinecodierungsmodell im Gegensatz zur Verwendung des CodeBehind-Modells. Dies bedeutet, dass die Geschäftslogik der Seite (alle Seitenmethoden) in der Seite selbst zwischen <script> Tags gekapselt wird.

Die Default.master Seite für dieses Starter kit ist eine reine Präsentationsvorlage, die dann von jeder Inhaltsseite in der Anwendung verwendet werden kann (Inhaltsseiten werden in Kürze erläutert). Das Schöne beim Arbeiten mit master Seiten in ASP.NET 2.0 ist die Darstellung in Visual Studio. Klicken Sie im Dokumentfenster von Visual Studio auf die Registerkarte Entwurf, um eine visuelle Darstellung der master Seite anzuzeigen. Dies ist hier in Abbildung 8 dargestellt.

Aa479303.clubwebsitesk08(en-us,MSDN.10).gif

Abbildung 8. Masterseite

In dieser Abbildung können Sie sehen, dass diese Seite das grundlegende Framework enthält, das von jeder Inhaltsseite verwendet wird, die diese master Seite verwendet. Auf der Seite master finden Sie eine Kombination aus HTML- und Webserversteuerelementen, von denen einige in ASP.NET 2.0 neu sind. Obwohl das Bild in Abbildung 8 hauptsächlich eine gelbe Seite zu sein scheint, gibt es auch viele Stile und Bilder, die über die kaskadierende Stylesheetdatei der Anwendung in clubsite.cssdie master Seite eingefügt werden. Dieses Stylesheet wird der master Seite hinzugefügt, indem das folgende Codebit eingefügt wird:

<link type="text/css" rel="Stylesheet" href="clubsite.css" />

Das wahrscheinlich interessanteste Serversteuerelement auf der master Seite, die in ASP.NET 2.0 neu ist, ist das ContentPlaceHolder-Steuerelement. Das ContentPlaceHolder-Steuerelement ist ein definierter Bereich, der es jeder Inhaltsseite ermöglicht, die diese bestimmte master Seite zum Einwerfen von Inhalten verwendet. Wenn Sie Ihre master Seiten erstellen, erlauben Sie im Grunde, dass Inhaltsseiten bestimmte Abschnitte der Seite verwenden. Eine Inhaltsseite kann nicht außerhalb der Grenzen dieses Inhaltsbereichs funktionieren. Obwohl es möglich ist, mehrere Inhaltsbereiche durch die Verwendung mehrerer ContentPlaceHolder-Steuerelemente einzubeziehen, die auf der master Seite platziert sind, verwendet dieses Beispiel (unsere Default.master Seite) nur eines dieser Steuerelemente.

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>

Ein weiteres neues ASP.NET Serversteuerelement, das auf der master Seite verwendet wird, ist das SiteMapDataSource-Steuerelement. Mit diesem Datenquellensteuerelement können Sie problemlos mit einer definierten Navigationsstruktur für Ihre Seite arbeiten. Standardmäßig definieren Sie die Navigationsstruktur Ihrer Website in der XML-Datei web.sitemap. Sie finden diese Datei im Club-Website-Projekt. Es wird hier in Listing 1 angezeigt.

Eintrag 1: Die datei web.sitemap, die vom Standard verwendet wird. seite master

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="https://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="/" title=""  description=""  roles="*">
    <siteMapNode url="default.aspx" title="Home"  
     description="Welcome page"  />
    <siteMapNode url="events_calendar.aspx" title="Events"  
     description="Calendar of events"  />
    <siteMapNode url="news_list.aspx" title="News"  
     description="Recent News"  />
    <siteMapNode url="photoalbum_list.aspx" title="Photos"  
     description="Photo album"  />
    <siteMapNode url="member_list.aspx" title="Members" 
     description="Membership list and contact informaation" />
    <siteMapNode url="member_redirect.aspx" title="Membership"  
     description="Member registration"  />
    <siteMapNode url="links.aspx" title="Links"  
     description="Useful links"  />
    <siteMapNode url="contact.aspx" title="Contact"  
     description="How to contact the club leaders"  />
  </siteMapNode>
</siteMap>

Wenn Sie diese Struktur betrachten, können Sie sehen, dass die Anwendung in einem ziemlich flachen Format dargestellt wird. Es gibt wirklich keine Hierarchie von Seiten, die der Endbenutzer durcharbeiten kann. Aus diesem Grund werden die Hyperlinks zu den einzelnen Seiten in einer horizontalen Symbolleiste angezeigt, die oben und unten auf der master Seite angezeigt wird.

In der Design- oder Codeansicht der master Seite können Sie nun die Seite personalisieren, indem Sie den Text der master Seite so ändern, dass er Ihren Club oder organization widerspiegelt.

Als Nächstes sehen wir uns das Navigationssystem genauer an, das in der master Seite integriert ist.

Arbeiten mit dem SiteMapDataSource-Steuerelement auf der Gestaltungsvorlage

Die master Seite zeigt oben und unten auf jeder Seite eine Navigationssymbolleiste an. Wenn eine Inhaltsseite diese master Seite verwendet, wird die Symbolleiste in Abbildung 9 veranschaulicht.

Aa479303.clubwebsitesk09(en-us,MSDN.10).gif

Abbildung 9. Symbolleiste

Diese Navigationssymbolleiste wird durch den Inhalt der Datei definiert, die web.sitemap wir weiter oben in diesem Artikel überprüft haben. Wie machen diese Informationen aus der Datei, die web.sitemap auf der Seite angezeigt werden soll? Wenn Sie den Code der Default.master Seite durchsehen, sehen Sie, dass sie ein SiteMapDataSource-Steuerelement verwendet, um den Inhalt der XML-Datei darzustellen.

Wenn die Seitenstruktur Ihrer Anwendung in einer web.sitemap Datei definiert ist, können Sie dann mit Ihrer definierten Navigationsstruktur über die neue Sitemap Klasse oder über das neue SiteMapDataSource-Steuerelement interagieren. Mithilfe des SiteMapDataSource-Steuerelements können Sie dann eine Bindung an den Inhalt der Navigationsstruktur in der web.sitemap Datei herstellen, indem Sie entweder Datenbindungsausdrücke oder Serversteuerelemente verwenden, die für die Arbeit mit dem SiteMapDataSource-Steuerelement erstellt wurden (z. B. die Serversteuerelemente TreeView oder Menu ).

Im Fall des Club Web Site Starter Kit verwendet die Default.master Seite einfache datengebundene Ausdrücke, die ihre Informationen aus dem SiteMapDataSource-Steuerelement abrufen, im Gegensatz zu einem der oben genannten Serversteuerelemente. Listing 2 zeigt das SiteMapDataSource-Steuerelement auf der seite master.

Auflistung 2: Das SiteMapDataSource-Steuerelement von der master Seite

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" 
 ShowStartingNode="false" />

Wie Sie sehen, gibt es nicht viel zu arbeiten mit der definierten Anwendungsstruktur, die aus der web.sitemap Datei stammt. Alles, was benötigt wird, ist ein SiteMapDataSource-Steuerelement wie in Listing 2 dargestellt. Die einzige Verhaltensänderung, die in diesem Datenquellensteuerelement definiert wird, ist die Verwendung des ShowStartingNode -Attributs, das auf falsefestgelegt ist. Wenn Sie auf false festgelegt sind, ignoriert das SiteMapDataSource-Steuerelement das erste <siteMapNode> Element, das in der web.sitemap Datei angezeigt wird, und arbeitet stattdessen von den Elementen aus, die <siteMapNode> direkt unter dem ersten geschachtelt sind.

Nachdem das SiteMapDataSource-Steuerelement nun vorhanden ist, werden die Navigationssymbolleisten mithilfe der Datenbindungsausdrücke erstellt. Dies wird in Eintrag 3 angezeigt.

Auflistung 3: Verwenden des SiteMapDataSource-Steuerelements zum Erstellen der Navigationssymbolleiste

<asp:Repeater ID="TopNavRepeat" runat="server" 
 DataSourceID="SiteMapDataSource1">
   <HeaderTemplate>
      <ul>
   </HeaderTemplate>
   <ItemTemplate>
      <li>
      <asp:HyperLink ID="HyperLink1" runat="server" 
       Text='<%# Eval("Title") %>' NavigateUrl='<%# Eval("Url") %>'
       ToolTip='<%# Eval("Description") %>' />
      </li>
   </ItemTemplate>
   <FooterTemplate>
      </ul>
   </FooterTemplate>
</asp:Repeater>

Die Default.master Seite bindet sich an das Resultset aus dem SiteMapDataSource-Steuerelement an zwei Stellen – einmal für die Kopfzeilennavigation und einmal für die Fußzeilennavigation.

In Listing 3 können Sie sehen, dass ein Repeater-Serversteuerelement verwendet wird, um eine ungeordnete Liste von Hyperlinks zu erstellen. Die Hyperlinks werden mithilfe eines HyperLink-Serversteuerelements erstellt. Das Abrufen der Daten aus dem SiteMapDataSource-Steuerelement ist so einfach wie das Angeben des DataSourceID Attributs, das ID dem des SiteMapDataSource-Steuerelements auf derselben Seite entspricht. Sobald dies vorhanden ist, können Sie bestimmte Elemente abrufen, die aus dem SiteMapDataSource-Steuerelement stammen, indem Sie einfach den Eval Bindungsausdruck verwenden. Ein Beispiel hierfür ist:

<%# Eval("Title") %>

Dieser Ausdruck ist an das title-Attribut gebunden, das in der web.sitemap Datei verwendet wurde.

<siteMapNode url="default.aspx" title="Home"  
 description="Welcome page"  />

Hier sehen Sie, dass jede Seite (definiert mit dem <siteMapNode> -Element) drei Attribute aufweist: url, titleund description. Alle drei Attribute werden im Repeater-Serversteuerelement verwendet.

Es ist interessant zu beachten, dass Sie Ihr Navigationssystem nicht vollständig mithilfe von Eval Ausdrücken erstellen müssen, wie im Club Web Site Starter Kit veranschaulicht. In ASP.NET 2.0 sind einige neue Serversteuerelemente enthalten, die speziell für die Arbeit mit einem SiteMapDataSource-Steuerelement und den zugrunde liegenden Daten entwickelt wurden, die in der web.sitemap Datei angezeigt werden, um dem Endbenutzer die Navigation Ihrer Anwendung anzuzeigen. Für instance sollten Sie die Serversteuerelemente SiteMapPath, TreeView oder Menu verwenden, um ein robustes Navigationssystem zu erstellen, das auch aus der web.sitemap Datei funktioniert.

Grundlegendes zu Websitezugriffseinschränkungen

Wenn Sie sich den Inhalt der web.sitemap Datei und die Navigationssymbolleiste ansehen, werden Sie feststellen, dass eine Seite in der Datei definiert ist, die web.sitemap nicht in der Navigationssymbolleiste angezeigt wird. Die Seite Mitglieder fehlt, wenn Sie zum ersten Mal das Club Web Site Starter Kit in einem Browser abrufen.

Wenn Sie sich jedoch als Websiteadministrator bei der Anwendung anmelden, werden Sie feststellen, dass die Seite Mitglieder jetzt in der Liste der Seiten auf der Navigationssymbolleiste vorhanden ist (hier in Abbildung 10 dargestellt).

Aa479303.clubwebsitesk10(en-us,MSDN.10).gif

Abbildung 10. Elemente, die der Symbolleiste hinzugefügt wurden

Warum ist das so? Obwohl alle Seiten der Anwendung in der web.sitemap Datei definiert sind und das SiteMapDataSource-Steuerelement mit den zugrunde liegenden Daten aus dieser XML-Datei arbeitet, gibt es noch weitere Verhaltensdefinitionen, die in der web.config Datei auftreten, die sich auf das Navigationssystem Ihrer Anwendung auswirken. Dies wird hier in Listing 4 dargestellt.

Eintrag 4: Bereitstellen von Seitenautorisierungsanforderungen im web.config

<location path="member_list.aspx" >
   <system.web>
      <authorization >
         <deny users="?" />
      </authorization>
   </system.web>
</location>

In dieser Teilansicht der web.config Datei können Sie sehen, dass die Member_List.aspx Seite gesperrt ist, sodass alle nicht authentifizierten Benutzer nicht auf die Seite zugreifen dürfen. Dies bedeutet, dass jeder, der sich in der Rolle "Administrator" oder einer anderen Rolle, die Sie in der Anwendung erstellen, bei der Anwendung angemeldet hat, zur Seite navigieren kann.

Das Interessante ist jedoch, dass es nicht nur darum geht, zu definieren, dass authentifizierte Benutzer zur Member_List.aspx Seite navigieren dürfen, sondern dass nur authentifizierte Benutzer in der Anwendung einen Link zu dieser Seite im Navigationssystem der Anwendung sehen können, der mithilfe des SiteMapDataSource-Steuerelements abgerufen wird.

Die erste Inhaltsseite: Default.aspx

Wenn Sie sich die Default.aspx Seite ansehen, werden Sie feststellen, dass es sich nicht um Ihre Standardseite .aspx handelt, die Sie möglicherweise gewohnt sind. Diese Default.aspx Seite wird als Inhaltsseite bezeichnet. Eine Inhaltsseite verwendet das neue Seitenvorlagensystem, das jetzt von ASP.NET 2.0 bereitgestellt wird. Wie Sie weiter oben in diesem Artikel gesehen haben, wurde mit der Erstellung der Default.master Seite eine Vorlage definiert. Diese Vorlagenseite – die master Seite – kann von einer beliebigen Anzahl von Inhaltsseiten verwendet werden. Wenn Sie sich die @Page-Anweisung oben auf der Default.aspx Seite ansehen, werden Sie feststellen, dass sie tatsächlich die master Seite verwendet.

<%@ Page Language="VB" MasterPageFile="~/Default.master" 
    Title="Untitled Page" %>

Durch die Verwendung des MasterPageFile Attributs in der @Page -Anweisung deklariert diese .aspx Seite, dass es sich um eine Inhaltsseite handelt und dass die zu verwendende Vorlage die Default.master Seite ist. Da es sich um eine Inhaltsseite handelt, die eine master Seite als Vorlage verwendet, bedeutet dies, dass Sie keines der HTML-Tags einschließen sollen, die als Framework für die Seite verwendet werden (z. B. die <html>Tags , <body>, und<form>). Der Grund dafür ist, dass diese Elemente bereits auf der Default.master Seite enthalten sind.

Wenn Sie auf der seite master zurückschauen, werden Sie sich daran erinnern, dass es auf der Seite einen einzelnen Speicherort gab, der für eine Inhaltsseite zum Platzieren von Elementen zugewiesen wurde. Dies wurde durch die Verwendung des ContentPlaceHolder-Serversteuerelements erreicht. Wenn Sie mit einer Inhaltsseite arbeiten, erstellen Sie eine Zuordnung zu dieser instance des ContentPlaceHolder-Steuerelements auf der seite master durch Verwendung eines Content-Serversteuerelements. Wenn Sie die Default.aspx Seite durchsehen, werden Sie feststellen, dass es ein einzelnes Content-Steuerelement gibt.

<asp:Content ID="Content1" 
 ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
   <!-- Content removed for clarity -->
</asp:Content>

Wenn Sie sich das Content-Steuerelement ansehen, können Sie feststellen, dass die Zuordnung zum ContentPlaceHolder-Steuerelement durch die Verwendung des ContentPlaceHolderID Attributs erfolgt, das als Wert des IDContentPlaceHolder-Werts verwendet wird, der auf der seite master verwendet wird. Alle Inhalte, die innerhalb des Inhaltssteuerelements platziert werden, werden dann auf der zusammengeführten Seite angezeigt.

Eine der interessanteren Dinge beim Arbeiten mit einer Inhaltsseite ist die Darstellung dieser Seiten in Visual Studio. Bisher haben wir mit dem Code der Seiten gearbeitet. Wenn Sie auf die Registerkarte Entwurf für die Default.aspx Seite klicken, können Sie eine visuelle Darstellung dieser bestimmten Seite sehen. Dies ist in Abbildung 11 dargestellt.

Aa479303.clubwebsitesk11(en-us,MSDN.10).gif

Abbildung 11. Inhaltsseite innerhalb master Seite

In dieser Abbildung können Sie sehen, dass nicht nur der Inhalt, der auf der Inhaltsseite selbst verwendet wird, in der Entwurfsansicht der Seite angezeigt wird, sondern auch der Inhalt, der in der master Seite angegeben ist, auch in der Ansicht der Seite angezeigt wird. Dies ist die Seitenvererbung am besten.

Wenn Man sich den Code der Default.aspx Seite anschaut, gibt es hier einige interessante Dinge, die es wert sind, darauf hinzuweisen. Diese Seite enthält zwei Spalten von Steuerelementen. Wenn Sie sich die linke Spalte ansehen, finden Sie einen Begrüßungstext, den Sie durch einen personalisierten Text für Ihren eigenen Club ersetzen sollten. Unter dem Begrüßungstext finden Sie ein neues Steuerelement aus ASP.NET 2.0, dem LoginView-Steuerelement .

Da wir mit einer Anwendung arbeiten, die es Benutzern ermöglicht, sich bei der Anwendung anzumelden, enthält diese Seite Benutzer, die als authentifizierte und autorisierte Benutzer gelten (d. h., sie haben sich bei der Anwendung angemeldet und waren möglicherweise für eine bestimmte Rolle autorisiert). Diese Seite enthält auch Viewer, die den Authentifizierungs- und Autorisierungsprozess nicht durchlaufen haben. Aufgrund dieser Dynamik möchten Sie manchmal bestimmte Daten für authentifizierte Benutzer anzeigen, während Sie benutzern, die nicht authentifiziert sind, andere Inhalte anzeigen. Das LoginView-Steuerelement ermöglicht dieses Verhalten.

Das LoginView-Steuerelement verfügt über zwei Vorlagen: <AnonymousTemplate> und <LoggedInTemplate>. Wenn Sie sich den Code von Default.aspxansehen, sehen Sie, dass der Abschnitt AnonymousTemplate ein Formular enthält, das es dem Endbenutzer ermöglicht, sich bei der Anwendung anzumelden. Wenn der Benutzer nach der Anmeldung bei der Anwendung authentifiziert wird, wird er mit den im LoggedInTemplate Abschnitt bereitgestellten Inhalten angezeigt. Dieser Abschnitt enthält nur text und ein LoginName-Steuerelement . Das LoginName-Steuerelement wird einfach verwendet, um den Namen des authentifizierten Benutzers anzuzeigen. Ein Beispiel für beide Ansichten ist in Abbildung 12 dargestellt.

Aa479303.clubwebsitesk12(en-us,MSDN.10).gif

Abbildung 12: Anmeldesteuerelement

Das Formular, das über anonymousTemplate dargestellt wird, enthält auch ein benutzerdefiniertes Steuerelement. Dieses Steuerelement wird auf der Seite in wie folgt definiert:

<Club:RolloverButton runat="server" ValidationGroup="Login1" 
Text="Login" ID="LoginButton" CommandName="Login" />

Wenn Sie sich den Ordner App_Code der Projektmappe ansehen, finden Sie eine RolloverButtons.vb - oder .cs -Datei, die den Code für dieses benutzerdefinierte Steuerelement enthält.

Zusätzlich zu einem Anmeldeformular und der Verwendung von benutzerdefinierten Steuerelementen verwendet die rechte Spalte der Default.aspx Seite zwei SqlDataSource-Steuerelemente , um sowohl die fünf wichtigsten Ankündigungen als auch Ereignisse für die Präsentation abzurufen. Sehen wir uns zunächst das erste dieser SqlDataSource-Steuerelemente an.

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
 ProviderName="System.Data.SqlClient" 
 ConnectionString="<%$ ConnectionStrings:ClubSiteDB %>" 
 SelectCommand="SELECT top 5 [id], [itemdate], [title], [description], 
    [photo] FROM [Announcements] order by itemdate desc">
</asp:SqlDataSource>

Das SqlDataSource-Steuerelement arbeitet in Ihrem Namen, um Informationen aus einer beliebigen SQL-Datenbank abzurufen. In diesem Fall ruft dieses instance des SqlDataSource-Steuerelements informationen aus SQL Express ab, da dies mit der Verbindungszeichenfolge angegeben ist. Sie finden die verwendete SQL Express-Datei im Ordner App_Data Ihres Projekts. In diesem Ordner wird die Datei clubsite.mdfangezeigt. Hier werden ankündigungen, Ereignisse und Fotos der Website gespeichert.

Als Wert für das ConnectionString Attribut im SqlDataSource-Steuerelement können Sie sehen, dass es auf den Wert von ClubSiteDBverweist. Dieser Verweis verweist tatsächlich auf eine Deklaration, die in der Datei der Anwendung web.config gemacht wurde. Wenn Sie sich den <connectionStrings> Abschnitt der web.config Datei ansehen, sehen Sie die folgende Definition:

<add name="ClubSiteDB" 
 connectionString="Data Source=.\SQLExpress;Integrated 
    Security=true;AttachDBFileName=|DataDirectory|clubsite.mdf;
    User Instance=True" providerName="System.Data.SqlClient"/>

Mithilfe dieser Verbindungszeichenfolge verwendet sqlDataSource dann die im SelectCommand -Attribut angegebenen Werte, um Werte aus der SQL Express-Datei abzurufen.

Da nun Werte aus dem SqlDataSource-Steuerelement stammen, können Sie diese Werte mithilfe einer einfachen Bindungssyntax wie <%# Eval("photo") %>binden.

Der auf der Default.aspx Seite gefundene Code verwendet das Repeater-Steuerelement , das mit Eval -Anweisungen bestreut ist, um eine Liste der aktuellen Ankündigungen und Ereignisse aufzufüllen, die dann auf der Seite angezeigt werden. Wenn Sie sich dieses Beispiel ansehen, können Sie sehen, wie einfach es ist, Mit dem Pullen von Informationen aus einem Datenspeicher zu beginnen und dann diese Informationen anzuzeigen. Es sind wirklich nicht sehr viele Schritte erforderlich.

Sehen wir uns nun einige der Funktionen an, die auf den anderen Seiten der Anwendung bereitgestellt werden.

Auflisten von Clubereignissen: Events_Calendar.aspx

Klicken Sie auf der Navigationssymbolleiste auf den Link Ereignisse , um die Events_Calendar.aspx Seite zu öffnen. Diese Seite enthält eine Liste der Ereignisse und Orte, an denen diese Ereignisse auftreten. Ereignisse können in einem Monatskalender angezeigt werden, wie hier in Abbildung 13 dargestellt.

Aa479303.clubwebsitesk13(en-us,MSDN.10).gif

Abbildung 13: Kalenderansicht für Clubereignisse

Ereignisse können auch in einer Liste angezeigt werden (Abbildung 14). Diese Liste enthält einige Ereignisse, die gerade aufgetreten sind, sowie Ereignisse, die kurz vor dem Auftreten stehen. Sie werden feststellen, dass die Seite durch den Wechsel zu dieser Ansicht in Events_List.aspxgeändert wird.

Aa479303.clubwebsitesk14(en-us,MSDN.10).gif

Abbildung 14. Listenansicht von Clubereignissen

Die letzte Seite ist die Seite "Speicherortliste", die der Seite "Ereignisliste" ziemlich ähnlich ist. Klicken Sie auf den Link Speicherortliste , um eine neue Seite namens Locations_List.aspxzu öffnen. Dies ist in Abbildung 15 dargestellt.

Aa479303.clubwebsitesk15(en-us,MSDN.10).gif

Abbildung 15. Speicherorte

Wenn Sie bei der Anwendung als registrierter Benutzer angemeldet sind, der die Rolle "Administratoren" hat, werden auf der Seite die Schaltflächen Neues Ereignis hinzufügen oder Neuen Speicherort hinzufügen angezeigt. Wenn Sie auf diese Schaltflächen klicken, gelangen Sie zu Seiten, auf denen Sie Ereignisse und Speicherorte hinzufügen können, die dann für alle Benutzer in der Anwendung angezeigt werden. Dies ist in Abbildung 16 dargestellt.

Aa479303.clubwebsitesk16(en-us,MSDN.10).gif

Abbildung 16. Ereignisdetails

Es ist interessant zu beachten, wie die verschiedenen Verwaltungsschaltflächen auf den Seiten angezeigt werden, wenn Sie bei der Anwendung angemeldet sind und sich in der Rolle "Administratoren" befinden. Wenn Sie den Code von Events_Calendar.aspxbetrachten, sehen Sie einen einfachen Code im Page_Load -Ereignis. Dies wird hier in Listing 5 gezeigt.

Auflistung 5: Das Page_Load-Ereignis von events_calendar.aspx

[VB]

Protected Sub Page_Load(ByVal sender As Object, _
   ByVal e As System.EventArgs)
        Dim isAdmin As Boolean
        isAdmin = User.IsInRole("Administrators")
        panel1.Visible = isAdmin
        panel2.Visible = isAdmin
End Sub

[C#]

protected void Page_Load(object sender, System.EventArgs e)
{
   bool isAdmin = User.IsInRole("Administrators");
   panel1.Visible = isAdmin;
   panel2.Visible = isAdmin;
}

In diesem Beispiel aus Listing 5 können Sie sehen, dass hier nicht viel los ist. Zuerst wird ein Boolean Wert mit dem Namen isAdmin erstellt. Mithilfe des neuen User Objekts, das in ASP.NET 2.0 verfügbar ist, können Sie dann überprüfen, ob der Benutzer eine bestimmte Rolle hat. In diesem Fall überprüfen wir, ob der Benutzer, der auf die Seite trifft, in der Rolle "Administratoren " ist. Wenn sie sich in dieser speziellen Rolle befinden, wird der isAdmin Variablen ein True Wert zugewiesen. Dieser Wert wird dann verwendet, um zwei Panel-Serversteuerelemente zu aktivieren oder zu deaktivieren, die auf der Seite verwendet werden.

<asp:Panel ID="panel1" runat="server" CssClass="fullwidth">
   <div class="actionbuttons">
      <Club:RolloverLink ID="Addbtn" runat="server" Text="Add New Event" 
         NavigateURL="Events_edit.aspx?Action=New" />
   </div>
</asp:Panel>

Sehen wir uns als Nächstes die Seite an, die geöffnet wird, wenn der Benutzer in der Navigationssymbolleiste auf den Link News klickt.

Nachrichtenartikel: News_List.aspx

Klicken Sie im Navigationsbereich auf den Link Neuigkeiten , um die News_List.aspx Seite zu öffnen. Auf dieser Seite erhalten alle Benutzer eine Liste mit Nachrichtenartikeln, die ein Anwendungsadministrator in der Anwendung veröffentlicht. Die Artikel werden ausgelagert und zeigen nur 10 Artikel pro Seite an. Abbildung 17 zeigt ein Beispiel für eine Beispielseite für Nachrichten.

Aa479303.clubwebsitesk17(en-us,MSDN.10).gif

Abbildung 17. News-Seite

Wenn Sie sich als Administrator bei der Anwendung anmelden, haben Sie die Möglichkeit, Nachrichten hinzuzufügen. Dies ist möglich, indem Sie auf die Schaltfläche Neuen Artikel hinzufügen klicken, die auf der Nachrichtenseite nur für Benutzer mit der Rolle "Administratoren" angezeigt wird. Durch Drücken dieser Schaltfläche wird eine neue Seite (News_Edit.aspx) geöffnet, auf der Sie die vollständigen Details für einen neuen Artikel eingeben können. Dies ist in Abbildung 18 dargestellt.

Aa479303.clubwebsitesk18(en-us,MSDN.10).gif

Abbildung 18. Hinzufügen eines Nachrichtenelements

Wie Sie in dieser Abbildung sehen können, haben Sie die Möglichkeit, einen Artikeltitel, einen Link zu einer anderen Ressource, eine Artikelbeschreibung, das Datum, an dem der Artikel angezeigt wird, sowie alle Bilder hinzuzufügen, die Sie einem Nachrichtenartikel zuordnen möchten. Wenn Sie sich dafür entscheiden, dem Nachrichtenartikel, den Sie im System platzieren, kein Bild zuzuordnen, wird ein Standardbild angezeigt, anstatt überhaupt kein Bild anzuzeigen.

Sobald Nachrichtenartikel im System platziert wurden, werden diese Artikel nicht nur auf der News-Seite angezeigt, sondern auch die letzten fünf Artikel werden auf der Startseite der Anwendung angezeigt.

Sie können einen einzelnen Nachrichtenartikel anzeigen, indem Sie auf den read more >> Link klicken. Dadurch wird ein vollständiger Nachrichtenartikel auf einer einzelnen Seite (News_View.aspx) angezeigt. Sie können auch auf diese Seite gelangen, indem Sie auf die Überschrift des Nachrichtenartikels klicken.

Als Administrator haben Sie die Möglichkeit, den Inhalt des Artikels zu bearbeiten. Wenn Sie beim Anzeigen eines einzelnen Artikels als Administrator bei der Anwendung angemeldet sind, können Sie dazu auf die Schaltfläche Artikel bearbeiten klicken.

Wenn Sie sich den Code der News_List.aspx Seite ansehen, können Sie sehen, dass alle Artikel mithilfe eines SqlDataSource-Steuerelements aus der clubsite.mdf Datei abgerufen werden. Dieses Steuerelement wird in Listing 6 angezeigt.

Auflistung 6: Das SqlDataSource-Steuerelement zum Anzeigen von Nachrichtenartikeln

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
 ConnectionString="<%$ ConnectionStrings:ClubSiteDB %>"
 SelectCommand="PagedAnnouncementList" SelectCommandType="StoredProcedure" 
 OnSelected="SqlDataSource1_Selected">
   <SelectParameters>
      <asp:ControlParameter Name="pageNum" ControlID="pn1" 
       PropertyName="SelectedPage" />
      <asp:Parameter DefaultValue="10" Name="pageSize" Type="Int32" />
      <asp:Parameter Name="pageCount" Direction="ReturnValue" 
       Type="Int32" />
   </SelectParameters>
</asp:SqlDataSource>

In dieser Auflistung können Sie sehen, dass dieses SqlDataSource-Steuerelement die Verbindungszeichenfolge abruft, wie dies bei den zuvor dargestellten SqlDataSource-Steuerelementen der Fall war. Die Verbindungszeichenfolge wird aus dem <connectionStrings> Abschnitt der web.config Datei abgerufen. Es ist interessant, dass dieses SqlDataSource-Steuerelement eine gespeicherte Prozedur anstelle einer Inline-Anweisung Select verwendet. Um eine gespeicherte Prozedur zu verwenden, verwendet das SqlDataSource-Steuerelement das SelectCommandType -Attribut und gibt diesem den Wert zu StoredProcedure. Nachdem eine gespeicherte Prozedur als Typ des verwendeten Auswahlvorgangs deklariert wurde, benennen Sie die gespeicherte Prozedur wie im obigen Beispiel als Wert des SelectCommand Attributs. In diesem Fall besagt dieses SqlDataSource-Steuerelement , dass das Steuerelement für einen Select Befehl nach der gespeicherten PagedAnnouncementList Prozedur in der SQL Express-Datei suchen sollte.

Wenn Sie den clubsite.mdf Ordner in Visual Studio anzeigen, können Sie dessen Unterordner öffnen und den Ordner Gespeicherte Prozeduren identifizieren. Dies ist über die Registerkarte Datenbank Explorer in Visual Studio möglich. Dies ist in Abbildung 19 dargestellt.

Aa479303.clubwebsitesk19(en-us,MSDN.10).gif

Abbildung 19. Anzeigen des Ordners "Gespeicherte Prozeduren"

Doppelklicken Sie auf die PagedAnnouncementList gespeicherte Prozedur, um sie direkt im Dokumentfenster von Visual Studio zu öffnen. Dies ist in Abbildung 20 dargestellt.

Aa479303.clubwebsitesk20(en-us,MSDN.10).gif

Abbildung 20. Gespeicherte PagedAnnouncementList-Prozedur

Aus dem Code für das SqlDataSource-Steuerelement , das in Listing 6 angezeigt wird, können Sie sehen, dass es mehrere Parameter gibt, die der gespeicherten Prozedur angezeigt werden. Ein Parameter, auf den Sie achten sollten, ist der pageSize Parameter:

<asp:Parameter DefaultValue="10" Name="pageSize" Type="Int32" />

Dieser Parameter wird verwendet, um die Anzahl von Storys zu definieren, die standardmäßig auf der Nachrichtenseite angezeigt werden. Wenn Sie eine kleinere oder größere Auswahl an Nachrichtenartikeln auf einer Seite haben möchten, können Sie diese Nummer ändern.

Sobald das SqlDataSource-Steuerelement die Nachrichtenartikel aus der benötigten SQL Express-Datei abruft, verwendet die News_List.aspx Seite dann ein Repeater-Steuerelement zusammen mit der Eval Bindungssyntax, um die Artikel auf die Seite zu pushen.

Nun geht es zur nächsten Seite– der Fotoalbumseite.

Seite "Fotoalben": PhotoAlbum_List.aspx

Sie können die Seite Fotoalben aufrufen, wenn Sie auf der Navigationssymbolleiste der Anwendung auf den Link Fotos klicken. Diese Seite listet Fotoalben auf die gleiche Weise auf, in der die Nachrichtenartikel aufgeführt wurden. Ein Beispiel für die Seite ist in Abbildung 21 dargestellt.

Aa479303.clubwebsitesk21(en-us,MSDN.10).gif

Abbildung 21. Seite "Fotoalben"

Die Fotoalben zeigen eine kleine Miniaturansicht des ersten Bilds an, das im Album platziert wurde, und stellen dem Endbenutzer einen Link zum Anzeigen des gesamten Fotoalbums bereit. Wenn Sie auf den Titel des Albums klicken, werden benutzer zu einer anderen Seite weitergeleitet, auf der das gesamte Album präsentiert wird (PhotoAlbum_Contents.aspx).

Wenn Sie sich den Code der PhotoAlbum_List.aspx Seite ansehen, werden Sie feststellen, dass sie tatsächlich auf die gleiche Weise wie die News_List.aspx Seite erstellt wurde. Wenn Sie sich das SqlDataSource-Steuerelement auf der Seite ansehen, auf der die Fotoalbuminformationen abgerufen werden, werden Sie feststellen, dass dieses SqlDataSource-Steuerelement nicht viel von dem unterscheidet, das wir weiter oben in diesem Artikel behandelt haben. Das sqlDataSource-Steuerelement , das in PhotoAlbum_List.aspx verwendet wird, wird in Listing 7 dargestellt.

Auflistung 7: Das sqlDataSource-Steuerelement, das auf PhotoAlbum_List.aspx verwendet wird

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
 ConnectionString="<%$ ConnectionStrings:ClubsiteDB %>"
 SelectCommand="PagedAlbumList" SelectCommandType="StoredProcedure" 
 OnSelected="SqlDataSource1_Selected"
 OnSelecting="SqlDataSource1_Selecting">
   <SelectParameters>
      <asp:ControlParameter Name="pageNum" ControlID="pn1" 
       PropertyName="SelectedPage" />
      <asp:Parameter DefaultValue="16" Name="pageSize" Type="Int32" />
      <asp:Parameter Name="pageCount" Direction="ReturnValue" 
       Type="Int32" />
      <asp:Parameter Name="ownerid" />
   </SelectParameters>
</asp:SqlDataSource>

In dieser Auflistung können Sie sehen, dass auf der PhotoAlbum_List.aspx Seite 16 Fotoalben pro Seite angezeigt werden. Sie können dies bearbeiten, indem Sie den Eingabeparameter ändern, der in diesem Datenquellensteuerelement verwendet wird.

Wenn Endbenutzer ein Album zum Anzeigen auswählen, wird ihnen eine Seite angezeigt, auf der Miniaturansichten aller im Album enthaltenen Bilder sowie eine größere Ansicht des ersten Bilds im Album angezeigt werden. Dies wird hier in Abbildung 22 veranschaulicht.

Aa479303.clubwebsitesk22(en-us,MSDN.10).gif

Abbildung 22. Fotoalbum

Auf dieser Seite können Benutzer entweder durch die Bilder des Albums scrollen oder sogar die Bilder ihrer Wahl herunterladen. Um das Image herunterzuladen, verwendet das Club Web Site Starter Kit einen HTTP-Handler (ImageFetch.ashx), um das Image aus der Datenbank zu pullen und zum Herunterladen zurückzustreamen.

Anzeigen der registrierten Mitglieder der Anwendung: Member_List.aspx

Diese nächste Seite, die wir überprüfen, kann nur angezeigt werden, wenn Sie ein registrierter Benutzer in der Anwendung sind. Sie müssen nicht als Administrator der Anwendung registriert sein, aber sie müssen auf irgendeine Weise registriert sein. Jeder Benutzer kann sich tatsächlich für die Anwendung registrieren, indem er einfach auf den Link Mitgliedschaft in der Navigationssymbolleiste klickt und das bereitgestellte Formular ausfüllt. Dadurch werden sie automatisch zu einem registrierten Mitglied der Anwendung.

Nachdem ein Benutzer für die Anwendung registriert wurde, werden seine persönlichen Informationen auf der Seite Mitglieder angezeigt. Diese Seite ist hier in Abbildung 23 dargestellt.

Aa479303.clubwebsitesk23(en-us,MSDN.10).gif

Abbildung 23. Mitgliederliste

Die Mitgliederliste ermöglicht es, dass die aufgelisteten Mitglieder entweder in einer Ansicht Alle anzeigen oder nach Nachnamen angezeigt werden.

Es gibt einige interessante Dinge zu beachten, wenn Sie sich den Code für diese Seite ansehen. Zunächst wird das Alphabet über der Memberliste von einem SqlDataSource-Steuerelement gesteuert. Dieses Steuerelement und der Code, der für die Anzeige dieser verknüpften Liste verwendet wird, werden hier in Listing 8 dargestellt.

Auflistung 8: Abrufen der verfügbaren Mitglieder in einer Alphabetliste

<asp:LinkButton ID="showall" runat="server" Text="Show All" 
 OnClick="showall_Click" />
<asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:ClubSiteDB %>" 
 ID="SqlDataSource1" runat="server" SelectCommand="MemberCountByLetter" 
 SelectCommandType="StoredProcedure" />
<asp:Repeater DataSourceID="SqlDataSource1" ID="Repeater1" runat="server">
   <ItemTemplate>
      <asp:LinkButton ID="hp1" runat="server" Text='<%#Eval("letter")%>' 
       Visible='<%# CInt(Eval("num"))>0 %>' OnClick="hp1_Click" 
       CssClass='<%# LinkClass(CSTR(EVAL("letter")))%>' />
      <asp:Label ID="LinkButton1" runat="server" 
       Text='<%#Eval("letter")%>' Visible='<%# CInt(Eval("num"))=0 %>' />
   </ItemTemplate>
</asp:Repeater>

In diesem Fall verwendet das SqlDataSource-Steuerelement eine gespeicherte Prozedur, um eine Liste von Elementen nach einem Buchstaben im Alphabet abzurufen. Nach dem Abrufen werden diese Informationen auf der Seite mithilfe von Eval Datenbindungssyntaxanweisungen in einem Repeater-Steuerelement angezeigt. Obwohl im eigentlichen <ItemTemplate> Abschnitt des Repeater-Steuerelements zwei Steuerelemente vorhanden sind, ist jeweils nur ein Steuerelement sichtbar. Wenn ein Element mit einem Nachnamen vorhanden ist, der mit einem bestimmten Buchstaben beginnt, wird die Sichtbarkeit des LinkButton-Steuerelements auf True festgelegt. Wenn jedoch kein Element mit einem Nachnamen vorhanden ist, der mit einem bestimmten Buchstaben beginnt, wird der Buchstabe nur mit einem einfachen Label-Steuerelement angezeigt.

Die tatsächliche Liste der Member wird auf andere Weise als andere Elemente abgerufen, die in dieser Anwendung abgerufen werden. Im Fall dieser Seite werden die Member mithilfe eines ObjectDataSource-Steuerelements anstelle eines Zuvor gesehenen SqlDataSource-Steuerelements abgerufen.

Das ObjectDataSource-Steuerelement dient zum Abrufen von Daten aus einer Komponente der mittleren Ebene. In diesem Fall verwendet das ObjectDataSource1 -Steuerelement hier das TypeName -Attribut, um auf eine Klasse namens MemberDetails und eine Methode zu verweisen, die in dieser Klasse mit dem Namen enthalten ist Getmembers. Sie finden diese Klasse im Ordner App_Code Ihrer Anwendung. Wenn die News_List.aspx Seite angefordert wird, wird die MemberDetails -Klasse vom ObjectDataSource-Steuerelement aufgerufen, das dann die bereitgestellten Informationen mithilfe einer einfachen Bindungssyntax wie <% Eval("PhotoURL") %>bindet. Dies wird in Listing 9 dargestellt.

Auflistung 9: Verwenden eines ObjectDataSource-Steuerelements zum Abrufen von Memberinformationen

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
 SelectMethod="Getmembers" TypeName="MemberDetails">
   <SelectParameters>
      <asp:Parameter DefaultValue="" Name="Filter" Type="String" />
   </SelectParameters>
</asp:ObjectDataSource>

Sehen wir uns als Nächstes die Seite Mitgliedschaft an.

Seite "Mitgliedschaft": Member_Register.aspx

Es gibt zwei mögliche Ansichten auf dieser Seite. Wenn der Endbenutzer nicht bei der Website registriert ist, wird ein Registrierungsformular angezeigt (Abbildung 24).

Aa479303.clubwebsitesk24(en-us,MSDN.10).gif

Abbildung 24. Neue Benutzerregistrierung

Dieses Formular umfasst tatsächlich einige Schritte, und jeder dieser Schritte wird über ein neues ASP.NET 2.0-Steuerelement gesteuert, das CreateUserWizard-Steuerelement . Dieses Steuerelement ermöglicht mehrere Schritte, von denen jeder mithilfe verschiedener Typen von WizardStep-Steuerelementen definiert wird.

Wenn der Benutzer bei der Anwendung angemeldet ist, wird ein Formular angezeigt, das seine persönlichen Informationen enthält und es dem Benutzer ermöglicht, Änderungen an den zugrunde liegenden Daten vorzunehmen. Dies ist in Abbildung 25 dargestellt.

Aa479303.clubwebsitesk25(en-us,MSDN.10).gif

Abbildung 25. Ändern von Kontaktdetails

Anhand dieser Abbildung können Sie sehen, dass diese Seite dem Endbenutzer die Möglichkeit bietet, seine persönlichen Informationen zu ändern, ein Foto von sich selbst hinzuzufügen oder sogar sein Kennwort zu ändern.

Die bestimmte Seite, zu der der Endbenutzer weitergeleitet wird (entweder die Member_Register.aspx Seite oder die Member_Details.aspx Seite), wird von einer Seite namens Member_Redirect.aspxdiktiert. Dies ist eine einfache Seite, die den Benutzer auf eine neue Seite weitergibt, je nachdem, ob er in der Anwendung authentifiziert ist oder nicht. Wenn Sie sich diese Seite ansehen, finden Sie die gesamte Logik der Seite, die Page_Load im Ereignis enthalten ist. Dies wird hier in Listing 10 dargestellt.

Eintrag 10: Umleitung des Benutzers basierend auf der Anmeldung status

[VB]

Protected Sub Page_Load(ByVal sender As Object, 
  ByVal e As System.EventArgs)
        If Page.User.Identity.IsAuthenticated Then
            Response.Redirect("member_details.aspx")
        Else
            Response.Redirect("member_register.aspx")
        End If
End Sub

[C#]

protected void Page_Load(object sender, System.EventArgs e)
{
   if (Page.User.Identity.IsAuthenticated)
   {
      Response.Redirect("member_details.aspx");
   }
   else
   {
      Response.Redirect("member_register.aspx");
   }
}

Um den Endbenutzer umzuleiten, geht es einfach darum, das Page.User.Identity.IsAuthenticated -Objekt zu verwenden. Dadurch wird ein True Wert oder False bereitgestellt, der dann auf eine If Then Anweisung angewendet werden kann.

Statische Seiten: Links.aspx und Contact.aspx

Die letzten beiden Seiten, die wir uns ansehen werden, sind Links.aspx und Contact.aspx. Dies sind einfache Inhaltsseiten, die die Default.master Seite als Vorlage verwenden (genau wie alle Seiten). Diese beiden Seiten sind hier in Abbildung 26 dargestellt.

Aa479303.clubwebsitesk26(en-us,MSDN.10).gif

Abbildung 26. Links und Kontaktinformationsseiten

Beide Seiten bestehen einfach aus hartcodiertem Text, der einfach von Ihnen geändert werden muss, um angepasst zu werden.

Zusammenfassung

Das Club Web Site Starter Kit ist aus mehreren Gründen nützlich und wertvoll. Erstens ermöglicht es Ihnen, schnell und einfach eine Website für Ihren Club oder organization zu starten. Zweitens, und noch wichtiger, dieses StarterKit zeigt einige der neuen Funktionen in ASP.NET 2.0 sowie einige der neuen Features des zugrunde liegenden .NET Framework 2.0.

Von master Seiten bis hin zu neuen Steuerelementen gibt es viel von dieser Anwendung zu lernen. Einige der wichtigeren Punkte, auf die Sie achten sollten, sind die neuen Mitgliedschafts- und Rollenverwaltungssysteme, die ASP.NET 2.0 bietet. Diese neuen Sicherheitssysteme ermöglichen es Ihnen, den Zugriff auf Ihre Anwendung einfach zu verwalten und nicht nur Benutzer allgemein zu authentifizieren, sondern auch den authentifizierten Benutzer in eine bestimmte Rolle zu versetzen, die über unterschiedliche Zugriffsrechte verfügt.

Das Starter kit wurde in der Hoffnung erstellt, dass Sie es gründlich anpassen. Die Anpassung sollte nicht nur auf das Ändern des lorem ipsum-Texts beschränkt sein, sondern Sie sollten sich stattdessen mit dem Hinzufügen zusätzlicher Rollen, Berechtigungen, neuer Seiten und neuer Funktionen befassen. Weitere Informationen zum Anpassen des Club-Website-StarterKits finden Sie in meinem Folgeartikel erweitern des Starter Kit für die Club-Website. Viel Spaß und viel Spaß beim Programmieren!

© Microsoft Corporation. Alle Rechte vorbehalten.