SiteMapNode.Clone Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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ış false
yö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 true
Clone 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.