SiteMapResolveEventArgs Klas

Definitie

Biedt gegevens voor een gebeurtenis die wordt gegenereerd door de CurrentNode eigenschap van de SiteMapProvider klasse aan te roepen.

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

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de gebeurtenis SiteMapResolve op een ASP.NET webpagina kunt afhandelen om de doel-URL's te wijzigen die worden weergegeven door een sitenavigatiebeheer, zoals het besturingselement SiteMapPath. In dit voorbeeld is de huidige pagina een postpagina in een online bulletin board of forum. Als u zinvollere sitenavigatie wilt weergeven, worden de URL's van de knooppunten die door het navigatiebesturingselement worden weergegeven, toegevoegd met queryreeksen die relevant zijn voor de context.

Opmerking Het is veilig om toegang te krijgen tot de CurrentNode eigenschap vanuit de SiteMapResolveEventHandler klasse. De ASP.NET sitenavigatie-infrastructuur beschermt tegen oneindige recursie, in dit geval.

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

Opmerkingen

De SiteMapResolveEventArgs klasse wordt gebruikt in de ResolveSiteMapNode methode om abonnees in staat te stellen een exemplaar van de klasse te retourneren aan de SiteMapResolveSiteMapNode gebeurtenis. Door een gemachtigde van een gebeurtenishandler toe te voegen om de SiteMapResolve gebeurtenis af te handelen, kunt u een SiteMapNode weergave van een pagina maken zonder een aangepaste siteoverzichtprovider te implementeren.

Constructors

Name Description
SiteMapResolveEventArgs(HttpContext, SiteMapProvider)

Initialiseert een nieuw exemplaar van de SiteMapResolveEventArgs klasse met behulp van de opgegeven HttpContext en SiteMapProvider objecten.

Eigenschappen

Name Description
Context

Hiermee haalt u de context op van de paginaaanvraag die het aangevraagde knooppunt vertegenwoordigt.

Provider

Hiermee haalt u het SiteMapProvider object op dat de SiteMapResolve gebeurtenis heeft gegenereerd.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op

Zie ook