SiteMapResolveEventArgs Klasse

Definition

Stellt Daten für ein Ereignis bereit, das durch einen Aufruf der CurrentNode-Eigenschaft der SiteMapProvider-Klasse ausgelöst wird.

public ref class SiteMapResolveEventArgs : EventArgs
public class SiteMapResolveEventArgs : EventArgs
type SiteMapResolveEventArgs = class
    inherit EventArgs
Public Class SiteMapResolveEventArgs
Inherits EventArgs
Vererbung
SiteMapResolveEventArgs

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie das SiteMapResolve Ereignis auf einer ASP.NET-Webseite behandelt wird, um die Ziel-URLs zu ändern, die von einem Websitenavigationssteuerelement angezeigt werden, z. B. das SiteMapPath -Steuerelement. In diesem Beispiel ist die aktuelle Seite eine Beitragsseite in einem Online-Bulletinboard oder Forum. Um eine aussagekräftigere Websitenavigation zu rendern, werden die URLs der vom Navigationssteuerelement angezeigten Knoten mit Abfragezeichenfolgen angefügt, die für den Kontext relevant sind.

Hinweis Es ist sicher, von der Klasse aus auf die CurrentNodeSiteMapResolveEventHandler Eigenschaft zuzugreifen. Die ASP.NET Websitenavigationsinfrastruktur schützt in diesem Fall vor unendlicher Rekursion.

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;
}
Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

    ' The ExpandForumPaths method is called to handle
    ' the SiteMapResolve event.
    AddHandler SiteMap.SiteMapResolve, AddressOf Me.ExpandForumPaths

End Sub

Private Function ExpandForumPaths(ByVal sender As Object, ByVal e As SiteMapResolveEventArgs) As SiteMapNode
    ' 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.
    Dim currentNode As SiteMapNode = SiteMap.CurrentNode.Clone(True)
    Dim tempNode As SiteMapNode = currentNode

    ' Obtain the recent IDs.
    Dim forumGroupID As Integer = GetMostRecentForumGroupID()
    Dim forumID As Integer = GetMostRecentForumID(forumGroupID)
    Dim postID As Integer = GetMostRecentPostID(forumID)

    ' The current node, and its parents, can be modified to include
    ' dynamic querystring information relevant to the currently
    ' executing request.
    If Not (0 = postID) Then
        tempNode.Url = tempNode.Url & "?PostID=" & postID.ToString()
    End If

    tempNode = tempNode.ParentNode
    If Not (0 = forumID) And Not (tempNode Is Nothing) Then
        tempNode.Url = tempNode.Url & "?ForumID=" & forumID.ToString()
    End If

    tempNode = tempNode.ParentNode
    If Not (0 = ForumGroupID) And Not (tempNode Is Nothing) Then
        tempNode.Url = tempNode.Url & "?ForumGroupID=" & forumGroupID.ToString()
    End If

    Return currentNode

End Function

Hinweise

Die SiteMapResolveEventArgs -Klasse wird in der ResolveSiteMapNode -Methode verwendet, damit Abonnenten des SiteMapResolve Ereignisses eine instance der SiteMapNode -Klasse zurückgeben können. Durch Hinzufügen eines Ereignishandlerdelegats zum Behandeln des Ereignisses SiteMapResolve können Sie eine SiteMapNode Darstellung einer Seite erstellen, ohne einen benutzerdefinierten Siteübersichtsanbieter zu implementieren.

Konstruktoren

SiteMapResolveEventArgs(HttpContext, SiteMapProvider)

Initialisiert mit den angegebenen HttpContext- und SiteMapProvider-Objekten eine neue Instanz der SiteMapResolveEventArgs-Klasse.

Eigenschaften

Context

Ruft den Kontext der Seitenanforderung ab, den der angeforderte Knoten darstellt.

Provider

Ruft das SiteMapProvider-Objekt ab, das das SiteMapResolve-Ereignis ausgelöst hat.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen