SiteMap Sınıf

Tanım

SiteMap sınıfı, bir veya daha fazla site haritası sağlayıcısı tarafından sağlanan bir site için gezinti yapısının bellek içi gösterimidir. Bu sınıf devralınamaz.

public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
Devralma
SiteMap

Örnekler

Bu bölüm iki kod örneği içerir. İlk kod örneği, bir Web.config dosyasında site haritası sağlayıcısının nasıl bildir yapılacağını gösterir. İkinci kod örneği, bir SiteMap nesnenin nasıl kullanılacağını gösterir.

Aşağıdaki kod örneği, bir nesnenin varsayılan SiteMapProvider nesne olarak nasıl bildirildiğini gösteren bir XmlSiteMapProvider Web.config yapılandırma bölümüdür.

<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>  

Aşağıdaki kod örneği, ve CurrentNode özellikleri hakkında bilgi görüntülemek için statik üyelerine erişerek nesnesinin RootNode nasıl kullanılacağını SiteMap gösterir. Bunu, denetim tarafından işlenen çıkışla karşılaştırın SiteMapPath .

<%@ 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>

Açıklamalar

Site haritaları, kullanıcıların bir Web sitesinde gezinmesi SiteMapDataSourceiçin etkili bir gezinti arabirimini işlemek için , SiteMapPathve diğer denetimlerle birlikte kullanılır. SiteMap Nesne, ASP.NET site gezinti altyapısının, sayfa için salt okunur site haritası bilgilerine erişim sağlayan ve gezinti ve SiteMapDataSource denetimleri kullanarak geliştiricileri denetleyebilen bir bileşenidir. ASP.NET site gezinti altyapısının diğer bileşenleri arasında SiteMapProvider ve XmlSiteMapProvider sınıfları, Web.site haritası dosyası ve içerik ve menüleri işlemek için denetim gibi SiteMapPath sınıfla SiteMap çalışan çeşitli denetimler bulunur.

çeşitli SiteMap işlevlere sahiptir:

  • Site gezinti hiyerarşisinin kök düğümünü sağlar (yalnızca bir kök düğüm olabilir).

  • Hangi site haritası sağlayıcısının sorumlu veya varsayılan sağlayıcı olduğunu belirler.

  • oluşturmak SiteMapiçin kullanılan tüm sağlayıcı nesnelerini izler.

Temel olarak, SiteMap hiyerarşik bir nesne koleksiyonuna yönelik bir kapsayıcıdır SiteMapNode . Ancak, SiteMap düğümler arasındaki ilişkileri korumaz; bunun yerine bunu site haritası sağlayıcılarına devreder. , SiteMap bu site haritası sağlayıcıları tarafından tutulan site gezinti bilgilerine (nesneler biçiminde SiteMapNode ) yönelik bir arabirim görevi görür. Site gezinti verilerine erişebildiği sağlayıcıları izler ve koleksiyonunu kullanıma sunar Providers . Sağlayıcı, site haritası bilgilerini herhangi bir şekilde depolayabilir; soyut sınıfını genişletebildiği SiteMapProvider sürece, SiteMap sınıf ondan başarıyla başlatılabilir.

Sınıfın SiteMap varsayılan sağlayıcısı, Web.sitemap adlı bir XML yapılandırma dosyasıyla çalışan sınıfıdır XmlSiteMapProvider . Ancak, kendi SiteMapProvider nesnenizi yazabilir ve sitenizin site haritasını başlatmak için kullanabilirsiniz. Özel site haritası sağlayıcısı örneği için bkz SiteMapProvider. .

Site gezinti yapılandırmasını yöneten varsayılan bir site haritası yapılandırması belirtilir. Kendi site haritası sağlayıcınızı yazmayı seçerseniz, Web.config dosyasında bu yapılandırmayı geçersiz kılabilirsiniz.

SiteMap sınıfı yalnızca performans için statik üyeler sunar ve belirli bir sitede herhangi bir zamanda Bir Web Formu veya Web sunucusu denetiminden erişilebilir.

Özellikler

CurrentNode

şu anda istenen sayfayı temsil eden bir SiteMapNode denetim alır.

Enabled

Web.config dosyasında bir site haritası sağlayıcısının belirtilip belirtilmediğinde ve site haritası sağlayıcısının etkinleştirilip etkinleştirilmediğini gösteren bir Boole değeri alır.

Provider

Geçerli site haritası için varsayılan SiteMapProvider nesneyi alır.

Providers

sınıfı için SiteMap kullanılabilen adlandırılmış SiteMapProvider nesnelerin salt okunur bir koleksiyonunu alır.

RootNode

Site için gezinti yapısının en üst düzey sayfasını temsil eden bir SiteMapNode nesnesi alır.

Ekinlikler

SiteMapResolve

özelliğine CurrentNode erişildiğinde gerçekleşir.

Şunlara uygulanır

Ayrıca bkz.