Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo SiteMapNode.Clone (Boolean)

 

Data di pubblicazione: ottobre 2016

Crea una nuova copia che è una copia del nodo corrente, la possibilità di duplicare tutti i nodi padre e predecessore del nodo corrente.

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

public virtual SiteMapNode Clone(
	bool cloneParentNodes
)

Parametri

cloneParentNodes
Type: System.Boolean

true Per duplicare tutti i nodi padre e predecessore del nodo corrente. in caso contrario, false.

Valore restituito

Type: System.Web.SiteMapNode

Un nuovo nodo che è una copia del nodo corrente.

Se il cloneParentNodes parametro true, Clone metodo in modo ricorsivo tutti i nodi predecessore diretto di cloni e li associa al nodo corrente duplicato. I nodi figlio non vengono clonati.

Il Roles e Attributes raccolte vengono applicate a nuove raccolte.

Esempio di codice riportato di seguito viene illustrato come chiamare il Clone metodo per creare un nodo della mappa del sito duplicati dal nodo corrente. Il ExpandForumPaths metodo registrato per gestire il SiteMapResolve evento. Usa il Clone per creare una copia del nodo della mappa del sito corrente, modificare attributi in base ai dati di personalizzazione e restituire la copia di lavoro.

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
Disponibile da 2.0
Torna all'inizio
Mostra: