SiteMapNode.Clone Yöntem

Tanım

Geçerli düğümün kopyası olan yeni bir düğüm oluşturur.

Aşırı Yüklemeler

Clone()

Geçerli düğümün kopyası olan yeni bir düğüm oluşturur.

Clone(Boolean)

İsteğe bağlı olarak geçerli düğümün tüm üst ve üst düğümlerini kopyalayarak geçerli düğümün kopyası olan yeni bir kopya oluşturur.

Clone()

Geçerli düğümün kopyası olan yeni bir düğüm oluşturur.

public:
 virtual System::Web::SiteMapNode ^ Clone();
public virtual System.Web.SiteMapNode Clone ();
abstract member Clone : unit -> System.Web.SiteMapNode
override this.Clone : unit -> System.Web.SiteMapNode
Public Overridable Function Clone () As SiteMapNode

Döndürülenler

Geçerli düğümün kopyası olan yeni düğüm.

Açıklamalar

Clone parametresi olarak ayarlanmış falseyöntemini çağırır. Sağlayıcı, Title, Url, Descriptionve Key özellikleri kopyalanır. Roles ve Attributes koleksiyonları yeni koleksiyonlara kopyalanır. Üst ve alt düğümler kopyalanmaz.

Ayrıca bkz.

Şunlara uygulanır

Clone(Boolean)

İsteğe bağlı olarak geçerli düğümün tüm üst ve üst düğümlerini kopyalayarak geçerli düğümün kopyası olan yeni bir kopya oluşturur.

public:
 virtual System::Web::SiteMapNode ^ Clone(bool cloneParentNodes);
public virtual System.Web.SiteMapNode Clone (bool cloneParentNodes);
abstract member Clone : bool -> System.Web.SiteMapNode
override this.Clone : bool -> System.Web.SiteMapNode
Public Overridable Function Clone (cloneParentNodes As Boolean) As SiteMapNode

Parametreler

cloneParentNodes
Boolean

true geçerli düğümün tüm üst ve üst düğümlerini kopyalamak için; aksi takdirde , false.

Döndürülenler

Geçerli düğümün kopyası olan yeni düğüm.

Örnekler

Aşağıdaki kod örneği, geçerli düğümden yinelenen bir site haritası düğümü oluşturmak için yönteminin nasıl çağrılacağını Clone gösterir. ExpandForumPaths yöntemi olayı işlemek SiteMapResolve için kaydedilir. Geçerli site haritası düğümünün çalışan bir kopyasını oluşturmak, kişiselleştirme verilerine göre öznitelikleri değiştirmek ve çalışan kopyayı döndürmek için yöntemini kullanır Clone .

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

Açıklamalar

cloneParentNodes parametresi ise trueClone yöntemi tüm doğrudan üst düğümleri yinelemeli olarak kopyalar ve bunları geçerli kopyalanan düğümle ilişkilendirir. Alt düğümler kopyalanmaz.

Roles ve Attributes koleksiyonları yeni koleksiyonlara uygulanır.

Ayrıca bkz.

Şunlara uygulanır