SiteMapResolveEventArgs Sınıf
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.
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
Ö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) |