SiteMapResolveEventHandler Delegat

Definition

Stellt die Methode dar, die das SiteMapResolve-Ereignis einer bestimmten Instanz der SiteMapProvider-Klasse oder der statischen SiteMap-Klasse behandelt.Represents the method that will handle the SiteMapResolve event of a specific instance of the SiteMapProvider or static SiteMap class.

public delegate System::Web::SiteMapNode ^ SiteMapResolveEventHandler(System::Object ^ sender, SiteMapResolveEventArgs ^ e);
public delegate System.Web.SiteMapNode SiteMapResolveEventHandler(object sender, SiteMapResolveEventArgs e);
type SiteMapResolveEventHandler = delegate of obj * SiteMapResolveEventArgs -> SiteMapNode
Public Delegate Function SiteMapResolveEventHandler(sender As Object, e As SiteMapResolveEventArgs) As SiteMapNode 

Parameter

sender
Object

Die Quelle des Ereignisses, eine Instanz der SiteMapProvider-Klasse.The source of the event, an instance of the SiteMapProvider class.

e
SiteMapResolveEventArgs

Ein SiteMapResolveEventArgs, das die Ereignisdaten enthält.A SiteMapResolveEventArgs that contains the event data.

Rückgabewert

SiteMapNode

Das SiteMapNode-Objekt, das das Ergebnis der SiteMapResolveEventHandler-Operation darstellt.The SiteMapNode that represents the result of the SiteMapResolveEventHandler operation.

Vererbung
SiteMapResolveEventHandler

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 site Navigations SiteMapPath Steuerelement wie dem-Steuerelement angezeigt werden.The following code example demonstrates how to handle the SiteMapResolve event on an ASP.NET Web page to modify the target URLs that are displayed by a site navigation control, such as the SiteMapPath control. In diesem Beispiel ist die aktuelle Seite eine Post-Seite in einem Online Bulletin Board oder-Forum.In this example, the current page is a post page in an online bulletin board or forum. Um eine aussagekräftigere Website Navigation zu erzeugen, werden die URLs der Knoten, die vom Navigations Steuerelement angezeigt werden, mit Abfrage Zeichenfolgen angehängt, die für den Kontext relevant sind.In order to render more meaningful site navigation, the URLs of the nodes that are displayed by the navigation control are appended with query strings that are relevant to the context.

Hinweis

Der Zugriff auf die CurrentNode -Eigenschaft ist in der SiteMapResolveEventHandler -Klasse sicher.It is safe to access the CurrentNode property from within the SiteMapResolveEventHandler class. Die ASP.net-Site Navigations Infrastruktur schützt vor endlos Rekursion, in diesem Fall.The ASP.NET site navigation infrastructure guards against infinite recursion, in this case.

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 statische SiteMap -Klasse macht SiteMapResolve das-Ereignis des standardmäßigen Site Übersichts Anbieters verfügbar.The static SiteMap class exposes the SiteMapResolve event of the default site map provider.

Beim Erstellen eines SqlDataSourceCommandEventHandler-Delegaten bestimmen Sie die Methode für die Ereignisbehandlung.When you create a SqlDataSourceCommandEventHandler delegate, you identify the method that will handle the event. Um dem Ereignishandler das Ereignis zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu.To associate the event with your event handler, add an instance of the delegate to the event. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen, sofern der Delegat nicht entfernt wird.The event handler is called whenever the event occurs, unless you remove the delegate. Weitere Informationen zu Ereignishandlerdelegaten finden Sie unter behandeln und Auswerfen von Ereignissen.For more information about event handler delegates, see Handling and Raising Events.

Erweiterungsmethoden

GetMethodInfo(Delegate)

Ruft ein Objekt ab, das die Methode darstellt, die vom angegebenen Delegaten dargestellt wird.Gets an object that represents the method represented by the specified delegate.

Gilt für:

Siehe auch