SiteMapNode Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili simpul dalam struktur peta situs hierarkis seperti yang dijelaskan oleh SiteMap kelas dan kelas yang mengimplementasikan kelas abstrak SiteMapProvider .
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
- Warisan
-
SiteMapNode
- Penerapan
Contoh
Bagian ini berisi dua contoh kode. Contoh kode pertama menunjukkan cara membuat kumpulan simpul peta situs baru dan menambahkan elemen ke dalamnya. Contoh kode kedua menunjukkan cara memuat data peta situs dari file teks.
Contoh kode berikut menunjukkan cara menggunakan SiteMapNodeCollection konstruktor untuk membuat koleksi baru SiteMapNodeCollection , lalu menambahkan elemen ke Add dalamnya dengan metode .
// 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
Contoh kode berikut menunjukkan cara SimpleTextSiteMapProvider
mengurai file teks yang berisi data peta situs dalam string yang dibatasi koma. Objek baru SiteMapNode ditambahkan ke koleksi pelacakan internal kelas untuk setiap baris yang dibaca dari file.
Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk SiteMapProvider kelas .
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
Keterangan
Objek SiteMapNode mewakili halaman situs Web dalam struktur peta situs. SiteMapNode objek dimuat oleh kelas statis SiteMap pada run time menggunakan satu atau beberapa penyedia peta situs untuk memuat data peta situs dari penyimpanan persisten ke dalam memori. SiteMapNode objek dibungkus oleh SiteMapNodeItem kelas untuk digunakan oleh kontrol server Web, seperti SiteMapPath kontrol.
Kelas ini SiteMapNode mencakup beberapa properti yang digunakan untuk menjelaskan satu halaman di situs Web, termasuk properti yang menjelaskan halaman, seperti Urlproperti , Title, dan Description . Url Sedangkan properti digunakan oleh XmlSiteMapProvider kelas , yang merupakan penyedia peta situs default untuk ASP.NET, sebagai kunci pencarian dalam koleksi internal yang digunakan penyedia untuk melacak simpul, SiteMapNode kelas mendukung properti dasar Key yang dapat digunakan oleh penyedia peta situs untuk melacak simpul. Selain itu, Url properti digunakan oleh kontrol navigasi untuk merender hyperlink ke halaman dalam struktur navigasi. Properti Title adalah nama yang mudah diingat untuk SiteMapNode, sering sama dengan judul HTML Formulir Web, dan digunakan oleh kontrol navigasi untuk merender label sederhana. Terakhir, kumpulan NameValueCollection atribut tambahan Attributes tersedia untuk penyedia peta situs yang menggunakan SiteMapNode objek, tetapi memerlukan properti tambahan yang tidak tersedia di kelas dasar SiteMapNode .
Konstruktor
SiteMapNode(SiteMapProvider, String) |
Menginisialisasi instans SiteMapNode baru kelas , menggunakan yang ditentukan |
SiteMapNode(SiteMapProvider, String, String) |
Menginisialisasi instans SiteMapNode baru kelas menggunakan URL yang ditentukan, |
SiteMapNode(SiteMapProvider, String, String, String) |
Menginisialisasi instans SiteMapNode baru kelas menggunakan URL yang ditentukan, |
SiteMapNode(SiteMapProvider, String, String, String, String) |
Menginisialisasi instans SiteMapNode baru kelas menggunakan URL yang ditentukan, |
SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Menginisialisasi instans SiteMapNode baru kelas menggunakan penyedia peta situs tertentu yang mengelola simpul, URL, judul, deskripsi, peran, atribut tambahan, dan kunci sumber daya eksplisit dan implisit untuk pelokalan. |
Properti
Attributes |
Mendapatkan atau mengatur kumpulan atribut tambahan di luar properti yang ditik dengan kuat yang didefinisikan untuk SiteMapNode kelas . |
ChildNodes |
Mendapatkan atau mengatur semua simpul anak dari objek saat ini SiteMapNode dari penyedia terkait SiteMapProvider . |
Description |
Mendapatkan atau menetapkan deskripsi untuk SiteMapNode. |
HasChildNodes |
Mendapatkan nilai yang menunjukkan apakah saat ini SiteMapNode memiliki simpul anak. |
Item[String] |
Mendapatkan atau mengatur atribut kustom dari Attributes koleksi atau string sumber daya berdasarkan kunci yang ditentukan. |
Key |
Mendapatkan string yang mewakili kunci pencarian untuk simpul peta situs. |
NextSibling |
Mendapatkan simpul berikutnya SiteMapNode pada tingkat hierarkis yang sama dengan yang saat ini, relatif terhadap ParentNode properti (jika ada). |
ParentNode |
Mendapatkan atau mengatur SiteMapNode objek yang merupakan induk dari simpul saat ini. |
PreviousSibling |
Mendapatkan objek sebelumnya SiteMapNode pada tingkat yang sama dengan objek saat ini, relatif terhadap ParentNode objek (jika ada). |
Provider |
SiteMapProvider Mendapatkan penyedia tempat SiteMapNode objek dilacak. |
ReadOnly |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah simpul peta situs dapat dimodifikasi. |
ResourceKey |
Mendapatkan atau mengatur kunci sumber daya yang digunakan untuk melokalisasi SiteMapNode. |
Roles |
Mendapatkan atau mengatur kumpulan peran yang terkait dengan SiteMapNode objek, yang digunakan selama pemangkasan keamanan. |
RootNode |
Mendapatkan simpul akar penyedia akar dalam hierarki penyedia peta situs. Jika tidak ada hierarki penyedia, RootNode properti mendapatkan simpul akar dari penyedia saat ini. |
Title |
Mendapatkan atau mengatur judul SiteMapNode objek. |
Url |
Mendapatkan atau mengatur URL halaman yang diwakili SiteMapNode objek. |
Metode
Clone() |
Membuat simpul baru yang merupakan salinan simpul saat ini. |
Clone(Boolean) |
Membuat salinan baru yang merupakan salinan simpul saat ini, secara opsional mengkloning semua simpul induk dan leluhur dari simpul saat ini. |
Equals(Object) |
Mendapatkan nilai yang menunjukkan apakah saat ini SiteMapNode identik dengan objek yang ditentukan. |
GetAllNodes() |
Mengambil kumpulan baca-saja dari semua SiteMapNode objek yang merupakan keturunan dari simpul panggilan, terlepas dari tingkat pemisahan. |
GetDataSourceView(SiteMapDataSource, String) |
SiteMapDataSourceView Mengambil objek yang terkait dengan simpul saat ini. |
GetExplicitResourceString(String, String, Boolean) |
Mengambil string yang dilokalkan berdasarkan SiteMapNode atribut untuk dilokalkan, string default untuk dikembalikan jika tidak ada sumber daya yang ditemukan, dan nilai Boolean yang menunjukkan apakah akan melemparkan pengecualian jika tidak ada sumber daya yang ditemukan. |
GetHashCode() |
Mengembalikan kode SiteMapNode hash objek. |
GetHierarchicalDataSourceView() |
SiteMapHierarchicalDataSourceView Mengambil objek yang terkait dengan simpul saat ini. |
GetImplicitResourceString(String) |
Mendapatkan string yang dilokalkan berdasarkan nama atribut dan ResourceKey properti yang ditentukan oleh SiteMapProvider yang SiteMapNode dilacak. |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
IsAccessibleToUser(HttpContext) |
Mendapatkan nilai yang menunjukkan apakah simpul peta situs yang ditentukan dapat dilihat oleh pengguna dalam konteks yang ditentukan. |
IsDescendantOf(SiteMapNode) |
Mendapatkan nilai yang menunjukkan apakah simpul peta situs saat ini adalah anak atau turunan langsung dari simpul yang ditentukan. |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengonversi nilai instans SiteMapNode kelas ini ke representasi string yang setara. |
Implementasi Antarmuka Eksplisit
ICloneable.Clone() |
Membuat simpul baru yang merupakan salinan simpul saat ini. Untuk deskripsi anggota ini, lihat Clone(). |
IHierarchyData.GetChildren() |
Mengambil item data turunan hierarkis dari item saat ini. Untuk deskripsi anggota ini, lihat GetChildren(). |
IHierarchyData.GetParent() |
Mengambil induk hierarkis item saat ini. Untuk deskripsi anggota ini, lihat GetParent(). |
IHierarchyData.HasChildren |
Mendapatkan nilai yang menunjukkan apakah objek saat ini SiteMapNode memiliki simpul anak. Untuk deskripsi anggota ini, lihat HasChildren. |
IHierarchyData.Item |
Mendapatkan item data hierarkis. Untuk deskripsi anggota ini, lihat Item. |
IHierarchyData.Path |
Mendapatkan jalur item data hierarkis. Untuk deskripsi anggota ini, lihat Path. |
IHierarchyData.Type |
Mendapatkan string yang mewakili nama jenis item data hierarkis. Untuk deskripsi anggota ini, lihat Type. |
INavigateUIData.Description |
Description Mendapatkan properti dari simpul peta situs. Untuk deskripsi anggota ini, lihat Description. |
INavigateUIData.Name |
Title Mendapatkan properti dari simpul peta situs. Untuk deskripsi anggota ini, lihat Name. |
INavigateUIData.NavigateUrl |
Url Mendapatkan properti dari simpul peta situs. Untuk deskripsi anggota ini, lihat NavigateUrl. |
INavigateUIData.Value |
Title Mendapatkan properti dari simpul peta situs. Untuk deskripsi anggota ini, lihat Value. |