(0) exportieren Drucken
Alle erweitern
Erweitern Minimieren
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original

SiteMapResolveEventHandler-Delegat

Stellt die Methode dar, die das SiteMapResolve-Ereignis einer bestimmten Instanz der SiteMapProvider-Klasse oder der statischen SiteMap-Klasse behandelt.

Namespace:  System.Web
Assembly:  System.Web (in System.Web.dll)

public delegate SiteMapNode SiteMapResolveEventHandler(
	Object sender,
	SiteMapResolveEventArgs e
)

Parameter

sender
Typ: System.Object
Die Quelle des Ereignisses, eine Instanz der SiteMapProvider-Klasse.
e
Typ: System.Web.SiteMapResolveEventArgs
Eine Instanz der SiteMapResolveEventArgs-Klasse, die die Ereignisdaten enthält.

Rückgabewert

Typ: System.Web.SiteMapNode
Das SiteMapNode-Objekt, das das Ergebnis der SiteMapResolveEventHandler-Operation darstellt.

Die statische SiteMap-Klasse macht das SiteMapResolve-Ereignis des Siteübersichts-Standardanbieters verfügbar.

Beim Erstellen eines SqlDataSourceCommandEventHandler-Delegaten geben Sie die Methode für die Ereignisbehandlung an. Um dem Ereignishandler das Ereignis zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen, sofern der Delegat nicht entfernt wird. Weitere Informationen zu Ereignishandlerdelegaten finden Sie unter Ereignisse und Delegaten.

Das folgende Codebeispiel veranschaulicht die Behandlung des SiteMapResolve-Ereignisses in einer ASP.NET-Webseite, mit der die Ziel-URLs verändert werden, die von einem Sitenavigationssteuerelement angezeigt werden, z. B. dem SiteMapPath-Steuerelement. In diesem Beispiel ist die aktuelle Seite eine Seite mit einem Posting in einem Bulletinboard oder Forum. Um eine aussagekräftigere Sitenavigation zu erreichen, werden an die vom Navigationssteuerelement angezeigten URLs der Knoten Abfragezeichenfolgen angefügt, die für den Kontext relevant sind.

HinweisHinweis

Der Zugriff auf die CurrentNode-Eigenschaft aus der SiteMapResolveEventHandler-Klasse ist sicher. Die Infrastruktur der ASP.NET-Sitenavigation schützt in diesem Fall gegen unendliche Wiederholungen.


private void Page_Load(object sender, EventArgs e)
{
    // The ExpandForumPaths method is called to handle
    // the SiteMapResolve event.
    SiteMap.SiteMapResolve +=
      new SiteMapResolveEventHandler(this.ExpandForumPaths);
}

private SiteMapNode ExpandForumPaths(Object sender, SiteMapResolveEventArgs e)
{
    // The current node represents a Post page in a bulletin board forum.
    // Clone the current node and all of its relevant parents. This
    // returns a site map node that a developer can then
    // walk, modifying each node.Url property in turn.
    // Since the cloned nodes are separate from the underlying
    // site navigation structure, the fixups that are made do not
    // effect the overall site navigation structure.
    SiteMapNode currentNode = SiteMap.CurrentNode.Clone(true);
    SiteMapNode tempNode = currentNode;

    // Obtain the recent IDs.
    int forumGroupID = GetMostRecentForumGroupID();
    int forumID = GetMostRecentForumID(forumGroupID);
    int postID = GetMostRecentPostID(forumID);

    // The current node, and its parents, can be modified to include
    // dynamic querystring information relevant to the currently
    // executing request.
    if (0 != postID)
    {
        tempNode.Url = tempNode.Url + "?PostID=" + postID.ToString();
    }

    if ((null != (tempNode = tempNode.ParentNode)) &&
        (0 != forumID))
    {
        tempNode.Url = tempNode.Url + "?ForumID=" + forumID.ToString();
    }

    if ((null != (tempNode = tempNode.ParentNode)) &&
        (0 != forumGroupID))
    {
        tempNode.Url = tempNode.Url + "?ForumGroupID=" + forumGroupID.ToString();
    }

    return currentNode;
}


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft