SiteMapResolveEventArgs Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt Daten für ein Ereignis bereit, das durch einen Aufruf der CurrentNode-Eigenschaft der SiteMapProvider-Klasse ausgelöst wird.
public ref class SiteMapResolveEventArgs : EventArgs
public class SiteMapResolveEventArgs : EventArgs
type SiteMapResolveEventArgs = class
inherit EventArgs
Public Class SiteMapResolveEventArgs
Inherits EventArgs
- Vererbung
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie das SiteMapResolve Ereignis auf einer ASP.NET-Webseite behandelt wird, um die Ziel-URLs zu ändern, die von einem Websitenavigationssteuerelement angezeigt werden, z. B. das SiteMapPath -Steuerelement. In diesem Beispiel ist die aktuelle Seite eine Beitragsseite in einem Online-Bulletinboard oder Forum. Um eine aussagekräftigere Websitenavigation zu rendern, werden die URLs der vom Navigationssteuerelement angezeigten Knoten mit Abfragezeichenfolgen angefügt, die für den Kontext relevant sind.
Hinweis Es ist sicher, von der Klasse aus auf die CurrentNodeSiteMapResolveEventHandler Eigenschaft zuzugreifen. Die ASP.NET Websitenavigationsinfrastruktur schützt in diesem Fall vor unendlicher Rekursion.
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
Hinweise
Die SiteMapResolveEventArgs -Klasse wird in der ResolveSiteMapNode -Methode verwendet, damit Abonnenten des SiteMapResolve Ereignisses eine instance der SiteMapNode -Klasse zurückgeben können. Durch Hinzufügen eines Ereignishandlerdelegats zum Behandeln des Ereignisses SiteMapResolve können Sie eine SiteMapNode Darstellung einer Seite erstellen, ohne einen benutzerdefinierten Siteübersichtsanbieter zu implementieren.
Konstruktoren
SiteMapResolveEventArgs(HttpContext, SiteMapProvider) |
Initialisiert mit den angegebenen HttpContext- und SiteMapProvider-Objekten eine neue Instanz der SiteMapResolveEventArgs-Klasse. |
Eigenschaften
Context |
Ruft den Kontext der Seitenanforderung ab, den der angeforderte Knoten darstellt. |
Provider |
Ruft das SiteMapProvider-Objekt ab, das das SiteMapResolve-Ereignis ausgelöst hat. |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |