SiteMap 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.
Kelas SiteMap adalah representasi dalam memori dari struktur navigasi untuk situs, yang disediakan oleh satu atau beberapa penyedia peta situs. Kelas ini tidak dapat diwariskan.
public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
- Warisan
-
SiteMap
Contoh
Bagian ini berisi dua contoh kode. Contoh kode pertama menunjukkan cara mendeklarasikan penyedia peta situs dalam file Web.config. Contoh kode kedua menunjukkan cara menggunakan SiteMap objek .
Contoh kode berikut adalah bagian konfigurasi Web.config yang menunjukkan bagaimana XmlSiteMapProvider objek dinyatakan sebagai objek default SiteMapProvider .
<siteMap defaultProvider="MyXmlSiteMapProvider" enabled="true">
<providers>
<add name="MyXmlSiteMapProvider"
description="The site map provider that reads in the .sitemap XML files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="my.sitemap" />
</providers>
</siteMap>
Contoh kode berikut menunjukkan cara menggunakan SiteMap objek dengan mengakses anggota statisnya untuk menampilkan informasi tentang RootNode properti dan CurrentNode . Bandingkan dengan output yang dirender oleh SiteMapPath kontrol.
<%@ Page language="c#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
// Examine the CurrentNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.CurrentNode.Title + "<br />");
Response.Write("<font COLOR='red'>" + SiteMap.CurrentNode.Url + "</font><br />");
// What nodes are children of the CurrentNode?
if (SiteMap.CurrentNode.HasChildNodes) {
IEnumerator childNodesEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator();
while (childNodesEnumerator.MoveNext()) {
// Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() + "<br />");
}
}
Response.Write("<hr />");
// Examine the RootNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.RootNode.Title + "<br />");
Response.Write(SiteMap.RootNode.Url + "<br />");
// What nodes are children of the RootNode?
if (SiteMap.RootNode.HasChildNodes) {
IEnumerator rootNodesChildrenEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator();
while (rootNodesChildrenEnumerator.MoveNext()) {
// Prints the Title of each node.
Response.Write(rootNodesChildrenEnumerator.Current.ToString() + "<br />");
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<asp:SiteMapPath
runat="server"
ID="SiteMapPath1"
ShowToolTips="false"/>
</form>
</body>
</html>
<%@ Page language="VB"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Private Sub Page_Load(sender As Object, e As System.EventArgs)
' Examine the CurrentNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.CurrentNode.Title & "<br />")
Response.Write("<font COLOR='red'>" & SiteMap.CurrentNode.Url & "</font><br />")
' What nodes are children of the CurrentNode?
If (SiteMap.CurrentNode.HasChildNodes) Then
Dim childNodesEnumerator As IEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator()
While (childNodesEnumerator.MoveNext())
' Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() & "<br />")
End While
End If
Response.Write("<hr />")
' Examine the RootNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.RootNode.Title & "<br />")
Response.Write(SiteMap.RootNode.Url & "<br />")
' What nodes are children of the RootNode?
If (SiteMap.RootNode.HasChildNodes) Then
Dim rootNodesChildrenEnumerator As IEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator()
While (rootNodesChildrenEnumerator.MoveNext())
' Prints the Title of each node.
Response.Write(rootNodesChildrenEnumerator.Current.ToString() & "<br />")
End While
End If
End Sub ' Page_Load
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<asp:SiteMapPath
runat="server"
ID="SiteMapPath1"
ShowToolTips="false"/>
</form>
</body>
</html>
Keterangan
Peta situs digunakan bersama dengan SiteMapDataSourcekontrol , , SiteMapPathdan lainnya untuk merender antarmuka navigasi yang efektif bagi pengguna untuk menavigasi situs Web. Objek SiteMap adalah komponen dari infrastruktur navigasi situs ASP.NET yang menyediakan akses ke informasi peta situs baca-saja untuk pengembang halaman dan kontrol menggunakan navigasi dan SiteMapDataSource kontrol. Komponen lain dari infrastruktur navigasi situs ASP.NET termasuk SiteMapProvider kelas dan XmlSiteMapProvider , file Web.sitemap, dan berbagai kontrol yang bekerja dengan SiteMap kelas , seperti SiteMapPath kontrol , untuk merender konten dan menu.
SiteMap memiliki beberapa fungsi:
Ini menyediakan simpul akar dari hierarki navigasi situs (hanya ada satu simpul akar).
Ini mengidentifikasi penyedia peta situs mana yang merupakan utama, atau default, penyedia.
Ini melacak semua objek penyedia yang digunakan untuk membuat SiteMap.
Pada dasarnya, SiteMap adalah kontainer untuk kumpulan SiteMapNode hierarkis objek. Namun, SiteMap tidak mempertahankan hubungan antara simpul; melainkan mendelegasikan ini ke penyedia peta situs. Bertindak SiteMap sebagai antarmuka ke informasi navigasi situs (dalam bentuk SiteMapNode objek) yang dipegang oleh penyedia peta situs ini. Ini melacak penyedia dari mana ia dapat mengakses data navigasi situs dan mengekspos koleksinya Providers . Penyedia dapat menyimpan informasi peta situsnya dengan cara apa pun - selama memperluas SiteMapProvider kelas abstrak, SiteMap kelas dapat berhasil diinisialisasi darinya.
Penyedia default untuk SiteMap kelas adalah XmlSiteMapProvider kelas , yang berfungsi dengan file konfigurasi XML, Web.sitemap. Namun, Anda dapat menulis objek Anda sendiri SiteMapProvider , dan menggunakannya untuk menginisialisasi peta situs untuk situs Anda. Untuk contoh penyedia peta situs kustom, lihat SiteMapProvider.
Konfigurasi peta situs default ditentukan yang mengelola konfigurasi navigasi situs. Anda dapat mengganti konfigurasi ini dalam file Web.config, jika Anda memilih untuk menulis penyedia peta situs Anda sendiri.
Kelas ini SiteMap hanya menawarkan anggota statis untuk kinerja dan dapat diakses kapan saja di situs tertentu dari Formulir Web atau kontrol server Web.
Properti
CurrentNode |
SiteMapNode Mendapatkan kontrol yang mewakili halaman yang saat ini diminta. |
Enabled |
Mendapatkan nilai Boolean yang menunjukkan apakah penyedia peta situs ditentukan dalam file Web.config dan apakah penyedia peta situs diaktifkan. |
Provider |
Mendapatkan objek default SiteMapProvider untuk peta situs saat ini. |
Providers |
Mendapatkan koleksi baca-saja dari objek bernama SiteMapProvider yang tersedia untuk SiteMap kelas . |
RootNode |
SiteMapNode Mendapatkan objek yang mewakili halaman tingkat atas struktur navigasi untuk situs. |
Acara
SiteMapResolve |
Terjadi ketika CurrentNode properti diakses. |