Bagikan melalui


SiteMap Kelas

Definisi

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.

Berlaku untuk

Lihat juga