SiteMapResolveEventArgs Sınıf

Tanım

sınıfının özelliği SiteMapProvider çağrılarak CurrentNode oluşturulan bir olay için veri sağlar.

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

Örnekler

Aşağıdaki kod örneği, bir ASP.NET Web sayfasında, denetim gibi SiteMapPath bir site gezinti denetimi tarafından görüntülenen hedef URL'leri değiştirmek için olayın nasıl işleneceğini SiteMapResolve gösterir. Bu örnekte, geçerli sayfa çevrimiçi bülten panosunda veya forumunda yer alan bir gönderi sayfasıdır. Daha anlamlı bir site gezintisi oluşturmak için, gezinti denetimi tarafından görüntülenen düğümlerin URL'leri bağlamla ilgili sorgu dizeleriyle eklenir.

Not özelliğine CurrentNode sınıfının içinden SiteMapResolveEventHandler erişmek güvenlidir. bu durumda, ASP.NET site gezinti altyapısı sonsuz özyinelemelere karşı koruma sağlar.

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

sınıfıSiteMapResolveEventArgs, olaya abonelerin sınıfının bir örneğini SiteMapResolve döndürmesini sağlamak için yönteminde SiteMapNode kullanılırResolveSiteMapNode. Olayı işlemek SiteMapResolve için bir olay işleyici temsilcisi ekleyerek, özel bir SiteMapNode site haritası sağlayıcısı uygulamadan bir sayfanın gösterimini oluşturabilirsiniz.

Oluşturucular

SiteMapResolveEventArgs(HttpContext, SiteMapProvider)

Belirtilen HttpContext ve SiteMapProvider nesnelerini kullanarak sınıfının yeni bir örneğini SiteMapResolveEventArgs başlatır.

Özellikler

Context

İstenen düğümün temsil ettiği sayfa isteğinin bağlamını alır.

Provider

SiteMapProvider Olayı tetikleyen SiteMapResolve nesneyi alır.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.