Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Esporta (0) Stampa
Espandi tutto
Espandi Riduci a icona

Delegato SiteMapResolveEventHandler

Nota: questo delegato è stato introdotto con .NET Framework versione 2.0.

Rappresenta il metodo che gestirà l'evento SiteMapResolve di una specifica istanza della classe SiteMapProvider o della classe SiteMap statica.

Spazio dei nomi: System.Web
Assembly: System.Web (in system.web.dll)

public delegate SiteMapNode SiteMapResolveEventHandler (
	Object sender,
	SiteMapResolveEventArgs e
)
/** @delegate */
public delegate SiteMapNode SiteMapResolveEventHandler (
	Object sender, 
	SiteMapResolveEventArgs e
)
JScript supporta l'utilizzo di delegati ma non la dichiarazione di nuovi.

Parametri

sender

Origine dell'evento, un'istanza della classe SiteMapProvider.

e

Oggetto SiteMapResolveEventArgs contenente i dati dell'evento.

Valore restituito

SiteMapNode che rappresenta il risultato dell'operazione SiteMapResolveEventHandler.

La classe SiteMap statica espone l'evento SiteMapResolve del provider della mappa del sito predefinito.

Quando si crea un delegato SqlDataSourceCommandEventHandler, viene identificato il metodo che gestirà l'evento. Per associare l'evento al gestore eventi in uso, aggiungere all'evento un'istanza del delegato. Il gestore eventi viene chiamato ogni qualvolta si verifica l'evento, a meno che il delegato non venga rimosso. Per ulteriori informazioni sui delegati del gestore eventi, vedere Eventi e delegati.

ArgomentoPercorso
Procedura: modificare a livello di codice i nodi della mappa del sito in memoriaCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: modificare a livello di codice i nodi della mappa del sito in memoriaCompilazione di applicazioni Web ASP.NET in Visual Studio
Procedura: modificare a livello di codice i nodi della mappa del sito in memoriaGenerazione di applicazioni Web ASP.NET

Nell'esempio di codice riportato di seguito viene illustrato come gestire l'evento SiteMapResolve in una pagina Web di ASP.NET per modificare gli URL di destinazione visualizzati mediante il controllo di spostamento nel sito, ad esempio il controllo SiteMapPath. In questo esempio, la pagina corrente è una pagina di inserimento in un forum o BBS in linea. Per effettuare un rendering dello spostamento nel sito più significativo, agli URL dei nodi visualizzati dal controllo di spostamento vengono accodate stringhe di query pertinenti al contesto.

NotaNota

Si consiglia di accedere alla proprietà CurrentNode dalla classe SiteMapResolveEventHandler. L'infrastruttura di spostamento nel sito ASP.NET evita, in questo caso, la ricorsione infinita.

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;
}

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft