SiteMapResolveEventArgs Classe

Definizione

Specifica dati per un evento generato chiamando la proprietà CurrentNode della classe SiteMapProvider.Provides data for an event that is raised by calling the CurrentNode property of the SiteMapProvider class.

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

Esempio

Nell'esempio di codice seguente viene illustrato come gestire SiteMapResolve l'evento in una pagina Web ASP.NET per modificare gli URL di destinazione visualizzati da un controllo di navigazione del sito, ad SiteMapPath esempio il controllo.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 questo esempio, la pagina corrente è una pagina post in una bacheca online o un forum.In this example, the current page is a post page in an online bulletin board or forum. Per rendere più significativa l'esplorazione del sito, gli URL dei nodi visualizzati dal controllo di navigazione vengono accodati con stringhe di query rilevanti per il contesto.To render more meaningful site navigation, the URLs of the nodes displayed by the navigation control are appended with query strings that are relevant to the context.

Nota È possibile accedere in modo sicuro CurrentNode alla proprietà dall'interno SiteMapResolveEventHandler della classe.Note It is safe to access the CurrentNode property from within the SiteMapResolveEventHandler class. L'infrastruttura di navigazione del sito di ASP.NET protegge dalla ricorsione infinita, in questo caso.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

Commenti

La SiteMapResolveEventArgs classe viene utilizzata ResolveSiteMapNode nel metodo per consentire ai sottoscrittori dell' SiteMapResolve evento di restituire un'istanza della SiteMapNode classe.The SiteMapResolveEventArgs class is used in the ResolveSiteMapNode method to enable subscribers to the SiteMapResolve event to return an instance of the SiteMapNode class. Aggiungendo un delegato del gestore eventi per gestire l' SiteMapResolve evento, è possibile creare una SiteMapNode rappresentazione di una pagina senza implementare un provider personalizzato della mappa del sito.By adding an event handler delegate to handle the SiteMapResolve event, you can create a SiteMapNode representation of a page without implementing a custom site map provider.

Costruttori

SiteMapResolveEventArgs(HttpContext, SiteMapProvider)

Inizializza una nuova istanza della classe SiteMapResolveEventArgs tramite gli oggetti HttpContext e SiteMapProvider specificati.Initializes a new instance of the SiteMapResolveEventArgs class using the specified HttpContext and SiteMapProvider objects.

Proprietà

Context

Ottiene il contesto della richiesta della pagina rappresentata dal nodo richiesto.Gets the context of the page request that the requested node represents.

Provider

Ottiene l'oggetto SiteMapProvider che ha generato l'evento SiteMapResolve.Gets the SiteMapProvider object that raised the SiteMapResolve event.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a

Vedi anche