SiteMapNode 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.
Hiyerarşik site haritası yapısında, soyut SiteMapProvider sınıfı uygulayan sınıf ve sınıflar tarafından SiteMap açıklanan gibi bir düğümü temsil eder.
public ref class SiteMapNode : ICloneable, System::Web::UI::IHierarchyData, System::Web::UI::INavigateUIData
public class SiteMapNode : ICloneable, System.Web.UI.IHierarchyData, System.Web.UI.INavigateUIData
type SiteMapNode = class
interface ICloneable
interface IHierarchyData
interface INavigateUIData
Public Class SiteMapNode
Implements ICloneable, IHierarchyData, INavigateUIData
- Devralma
-
SiteMapNode
- Uygulamalar
Örnekler
Bu bölüm iki kod örneği içerir. İlk kod örneğinde yeni bir site haritası düğüm koleksiyonunun nasıl oluşturulacağı ve bu koleksiyona nasıl öğe ekleneceği gösterilmektedir. İkinci kod örneği, site haritası verilerinin bir metin dosyasından nasıl yüklenip yüklenemediğni gösterir.
Aşağıdaki kod örneği, oluşturucuyu SiteMapNodeCollection kullanarak yeni SiteMapNodeCollection bir koleksiyon oluşturmayı ve ardından yöntemiyle Add öğe eklemeyi gösterir.
// The LoadSiteMapData() method loads site navigation
// data from persistent storage into a DataTable.
DataTable siteMap = LoadSiteMapData();
// Create a SiteMapNodeCollection.
SiteMapNodeCollection nodes = new SiteMapNodeCollection();
// Create a SiteMapNode and add it to the collection.
SiteMapNode tempNode;
DataRow row;
int index = 0;
while (index < siteMap.Rows.Count)
{
row = siteMap.Rows[index];
// Create a node based on the data in the DataRow.
tempNode = new SiteMapNode(SiteMap.Provider,
row["Key"].ToString(),
row["Url"].ToString());
// Add the node to the collection.
nodes.Add(tempNode);
++index;
}
' The LoadSiteMapData() Function loads site navigation
' data from persistent storage into a DataTable.
Dim siteMapData As DataTable
siteMapData = LoadSiteMapData()
' Create a SiteMapNodeCollection.
Dim nodes As New SiteMapNodeCollection()
' Create a SiteMapNode and add it to the collection.
Dim tempNode As SiteMapNode
Dim row As DataRow
Dim index As Integer
index = 0
While (index < siteMapData.Rows.Count)
row = siteMapData.Rows(index)
' Create a node based on the data in the DataRow.
tempNode = New SiteMapNode(SiteMap.Provider, row("Key").ToString(), row("Url").ToString())
' Add the node to the collection.
nodes.Add(tempNode)
index = index + 1
End While
Aşağıdaki kod örneği, site haritası verilerini virgülle ayrılmış dizelerde içeren bir metin dosyasını nasıl SimpleTextSiteMapProvider
ayrıştırdığını gösterir. Dosyasından okunan her satır için sınıfının iç izleme koleksiyonlarına yeni SiteMapNode bir nesne eklenir.
Bu kod örneği, sınıfı için SiteMapProvider sağlanan daha büyük bir örneğin parçasıdır.
protected virtual void LoadSiteMapFromStore()
{
string pathToOpen;
lock (this)
{
// If a root node exists, LoadSiteMapFromStore has already
// been called, and the method can return.
if (rootNode != null)
{
return;
}
else
{
pathToOpen = HttpContext.Current.Server.MapPath("~" + "\\" + sourceFilename);
if (File.Exists(pathToOpen))
{
// Open the file to read from.
using (StreamReader sr = File.OpenText(pathToOpen))
{
// Clear the state of the collections and rootNode
rootNode = null;
siteMapNodes.Clear();
childParentRelationship.Clear();
// Parse the file and build the site map
string s = "";
string[] nodeValues = null;
SiteMapNode temp = null;
while ((s = sr.ReadLine()) != null)
{
// Build the various SiteMapNode objects and add
// them to the ArrayList collections. The format used
// is: URL,TITLE,DESCRIPTION,PARENTURL
nodeValues = s.Split(',');
temp = new SiteMapNode(this,
HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[0],
HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[0],
nodeValues[1],
nodeValues[2]);
// Is this a root node yet?
if (null == rootNode &&
string.IsNullOrEmpty(nodeValues[3]))
{
rootNode = temp;
}
// If not the root node, add the node to the various collections.
else
{
siteMapNodes.Add(new DictionaryEntry(temp.Url, temp));
// The parent node has already been added to the collection.
SiteMapNode parentNode =
FindSiteMapNode(HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[3]);
if (parentNode != null)
{
childParentRelationship.Add(new DictionaryEntry(temp.Url, parentNode));
}
else
{
throw new Exception("Parent node not found for current node.");
}
}
}
}
}
else
{
throw new Exception("File not found");
}
}
}
return;
}
Protected Overridable Sub LoadSiteMapFromStore()
Dim pathToOpen As String
SyncLock Me
' If a root node exists, LoadSiteMapFromStore has already
' been called, and the method can return.
If Not (aRootNode Is Nothing) Then
Return
Else
pathToOpen = HttpContext.Current.Server.MapPath("~" & "\\" & sourceFilename)
If File.Exists(pathToOpen) Then
' Open the file to read from.
Dim sr As StreamReader = File.OpenText(pathToOpen)
Try
' Clear the state of the collections and aRootNode
aRootNode = Nothing
siteMapNodes.Clear()
childParentRelationship.Clear()
' Parse the file and build the site map
Dim s As String = ""
Dim nodeValues As String() = Nothing
Dim temp As SiteMapNode = Nothing
Do
s = sr.ReadLine()
If Not s Is Nothing Then
' Build the various SiteMapNode objects and add
' them to the ArrayList collections. The format used
' is: URL,TITLE,DESCRIPTION,PARENTURL
nodeValues = s.Split(","c)
temp = New SiteMapNode(Me, _
HttpRuntime.AppDomainAppVirtualPath & "/" & nodeValues(0), _
HttpRuntime.AppDomainAppVirtualPath & "/" & nodeValues(0), _
nodeValues(1), _
nodeValues(2))
' Is this a root node yet?
If aRootNode Is Nothing AndAlso _
(nodeValues(3) Is Nothing OrElse _
nodeValues(3) = String.Empty) Then
aRootNode = temp
' If not the root node, add the node to the various collections.
Else
siteMapNodes.Add(New DictionaryEntry(temp.Url, temp))
' The parent node has already been added to the collection.
Dim parentNode As SiteMapNode = _
FindSiteMapNode(HttpRuntime.AppDomainAppVirtualPath & "/" & nodeValues(3))
If Not (parentNode Is Nothing) Then
childParentRelationship.Add(New DictionaryEntry(temp.Url, parentNode))
Else
Throw New Exception("Parent node not found for current node.")
End If
End If
End If
Loop Until s Is Nothing
Finally
sr.Close()
End Try
Else
Throw New Exception("File not found")
End If
End If
End SyncLock
Return
End Sub
End Class
Açıklamalar
SiteMapNode Nesne, site haritası yapısındaki bir Web sitesi sayfasını temsil eder. SiteMapNode nesneleri, kalıcı depolamadan belleğe site haritası verilerini yüklemek için bir veya daha fazla site haritası sağlayıcısı kullanılarak çalışma zamanında statik SiteMap sınıf tarafından yüklenir. SiteMapNodenesneleri, denetim gibi SiteMapPath Web sunucusu denetimleri tarafından kullanılmak üzere sınıfı tarafından SiteMapNodeItem sarmalanmıştır.
SiteMapNode sınıfı, , ve Description özellikleri gibi bir sayfayı açıklayan özellikler de dahil olmak üzere bir Web sitesindeki tek bir sayfayı UrlTitletanımlamak için kullanılan çeşitli özellikler içerir. Url özelliği, ASP.NET için varsayılan site haritası sağlayıcısı olan sınıfı tarafından XmlSiteMapProvider kullanılırken, sağlayıcının düğümleri izlemek için kullandığı iç koleksiyonlarda arama anahtarı olarak kullanılırken, sınıf, SiteMapNode site haritası sağlayıcıları tarafından düğümleri izlemek için kullanılabilecek temel Key bir özelliği destekler. Ayrıca özelliği, Url gezinti denetimleri tarafından bir gezinti yapısı içindeki sayfalara köprüleri işlemek için kullanılır. Title özelliği, için SiteMapNodekolay bir addır, genellikle bir Web Formunun HTML başlığıyla aynıdır ve gezinti denetimleri tarafından basit etiketleri işlemek için kullanılır. Son olarak, nesneleri kullanan SiteMapNode ancak temel SiteMapNode sınıfta kullanılamayan ek Attributes özellikler gerektiren site eşleme sağlayıcıları tarafından ek özniteliklerden oluşan bir NameValueCollection koleksiyon sağlanır.
Oluşturucular
SiteMapNode(SiteMapProvider, String) |
Düğümün temsil olduğu sayfayı SiteMapNode ve düğümü yöneten site haritası sağlayıcısını tanımlamak için belirtilen |
SiteMapNode(SiteMapProvider, String, String) |
Belirtilen URL'yi kullanarak sınıfının yeni bir örneğini SiteMapNode başlatır, düğümün temsil ettiğini sayfayı tanımlamak için bir |
SiteMapNode(SiteMapProvider, String, String, String) |
Belirtilen URL'yi kullanarak sınıfın SiteMapNode yeni bir örneğini başlatır. |
SiteMapNode(SiteMapProvider, String, String, String, String) |
Belirtilen URL'yi kullanarak sınıfın SiteMapNode yeni bir örneğini başlatır. |
SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Düğüm, URL, başlık, açıklama, roller, ek öznitelikler ve yerelleştirme için açık ve örtük kaynak anahtarlarını yöneten belirtilen site haritası sağlayıcısını kullanarak sınıfının yeni bir örneğini SiteMapNode başlatır. |
Özellikler
Attributes |
Sınıfı için SiteMapNode tanımlanan kesin olarak belirlenmiş özelliklerin ötesinde ek öznitelikler koleksiyonunu alır veya ayarlar. |
ChildNodes |
İlişkili SiteMapProvider sağlayıcıdan geçerli SiteMapNode nesnenin tüm alt düğümlerini alır veya ayarlar. |
Description |
için SiteMapNodebir açıklama alır veya ayarlar. |
HasChildNodes |
Geçerli SiteMapNode düğümde alt düğüm olup olmadığını belirten bir değer alır. |
Item[String] |
Koleksiyondan veya belirtilen anahtara Attributes dayalı bir kaynak dizesinden özel bir öznitelik alır veya ayarlar. |
Key |
Site haritası düğümü için arama anahtarını temsil eden bir dize alır. |
NextSibling |
Özelliğine göre (varsa) geçerli düğümle aynı hiyerarşik düzeyde bir ParentNode sonraki SiteMapNode düğümü alır. |
ParentNode |
Geçerli düğümün SiteMapNode üst öğesi olan nesneyi alır veya ayarlar. |
PreviousSibling |
Önceki SiteMapNode nesneyi nesneye göre (varsa) geçerli nesneyle ParentNode aynı düzeyde alır. |
Provider |
Nesnenin SiteMapProvider izlediği sağlayıcıyı SiteMapNode alır. |
ReadOnly |
Site haritası düğümünü değiştirip değiştiremeyeceğini belirten bir değer alır veya ayarlar. |
ResourceKey |
yerelleştirmek SiteMapNodeiçin kullanılan kaynak anahtarını alır veya ayarlar. |
Roles |
Güvenlik kırpması sırasında kullanılan nesneyle ilişkili rollerin SiteMapNode koleksiyonunu alır veya ayarlar. |
RootNode |
Bir site haritası sağlayıcısı hiyerarşisindeki kök sağlayıcının kök düğümünü alır. Sağlayıcı hiyerarşisi yoksa, RootNode özelliği geçerli sağlayıcının kök düğümünü alır. |
Title |
Nesnenin SiteMapNode başlığını alır veya ayarlar. |
Url |
Nesnenin temsil olduğu sayfanın URL'sini SiteMapNode alır veya ayarlar. |
Yöntemler
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. |
Equals(Object) |
Geçerli SiteMapNode değerin belirtilen nesneyle aynı olup olmadığını belirten bir değer alır. |
GetAllNodes() |
Ayırma derecesine bakılmaksızın çağıran düğümün alt öğeleri olan tüm SiteMapNode nesnelerin salt okunur koleksiyonunu alır. |
GetDataSourceView(SiteMapDataSource, String) |
SiteMapDataSourceView Geçerli düğümle ilişkili nesneyi alır. |
GetExplicitResourceString(String, String, Boolean) |
Yerelleştirme özniteliğine, kaynak bulunamazsa döndürülecek varsayılan dizeye ve kaynak bulunamazsa özel durum oluşturup oluşturmayacağını belirten boole değerine göre SiteMapNode yerelleştirilmiş bir dize alır. |
GetHashCode() |
Nesnesinin karma kodunu SiteMapNode döndürür. |
GetHierarchicalDataSourceView() |
SiteMapHierarchicalDataSourceView Geçerli düğümle ilişkili nesneyi alır. |
GetImplicitResourceString(String) |
tarafından izlendiği öznitelik adına ve ResourceKey özelliğine SiteMapProviderSiteMapNode göre yerelleştirilmiş bir dize alır. |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
IsAccessibleToUser(HttpContext) |
Belirtilen site haritası düğümünü belirtilen bağlamda kullanıcı tarafından görüntülenip görüntülenemeyeceğini belirten bir değer alır. |
IsDescendantOf(SiteMapNode) |
Geçerli site haritası düğümünün alt düğüm mü yoksa belirtilen düğümün doğrudan alt öğesi mi olduğunu belirten bir değer alır. |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Sınıfının bu örneğinin SiteMapNode değerini eşdeğer dize gösterimine dönüştürür. |
Belirtik Arabirim Kullanımları
ICloneable.Clone() |
Geçerli düğümün kopyası olan yeni bir düğüm oluşturur. Bu üyenin açıklaması için bkz Clone(). . |
IHierarchyData.GetChildren() |
Geçerli öğenin hiyerarşik alt veri öğelerini alır. Bu üyenin açıklaması için bkz GetChildren(). . |
IHierarchyData.GetParent() |
Geçerli öğenin hiyerarşik üst öğesini alır. Bu üyenin açıklaması için bkz GetParent(). . |
IHierarchyData.HasChildren |
Geçerli SiteMapNode nesnenin herhangi bir alt düğüme sahip olup olmadığını gösteren bir değer alır. Bu üyenin açıklaması için bkz HasChildren. . |
IHierarchyData.Item |
Hiyerarşik veri öğesini alır. Bu üyenin açıklaması için bkz Item. . |
IHierarchyData.Path |
Hiyerarşik veri öğesinin yolunu alır. Bu üyenin açıklaması için bkz Path. . |
IHierarchyData.Type |
Hiyerarşik veri öğesinin tür adını temsil eden bir dize alır. Bu üyenin açıklaması için bkz Type. . |
INavigateUIData.Description |
Description Site haritası düğümünün özelliğini alır. Bu üyenin açıklaması için bkz Description. . |
INavigateUIData.Name |
Title Site haritası düğümünün özelliğini alır. Bu üyenin açıklaması için bkz Name. . |
INavigateUIData.NavigateUrl |
Url Site haritası düğümünün özelliğini alır. Bu üyenin açıklaması için bkz NavigateUrl. . |
INavigateUIData.Value |
Title Site haritası düğümünün özelliğini alır. Bu üyenin açıklaması için bkz Value. . |
Şunlara uygulanır
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin