Aracılığıyla paylaş


SiteMapNode Sınıf

Tanım

Hiyerarşik site eşleme 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ği, yeni bir site haritası düğümü koleksiyonu oluşturmayı ve buna öğe eklemeyi gösterir. İkinci kod örneği, bir metin dosyasından site eşleme verilerinin nasıl yükleneceklerini 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, virgülle ayrılmış dizelerde site haritası verilerini 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

Nesne SiteMapNode , site haritası yapısındaki bir Web sitesi sayfasını temsil eder. SiteMapNode nesneleri, bir veya daha fazla site eşleme sağlayıcısı kullanılarak çalışma zamanında statik SiteMap sınıf tarafından yüklenerek kalıcı depolama alanından belleğe site eşlemesi verileri yüklenir. SiteMapNodenesneleri, denetim gibi SiteMapPath Web sunucusu denetimleri tarafından kullanılmak üzere sınıfı tarafından SiteMapNodeItem sarmalanmıştır.

sınıfı, SiteMapNode bir web sitesindeki tek bir sayfayı tanımlamak için kullanılan, bir sayfayı açıklayan , ve Description özellikleri gibi özellikler de dahil olmak UrlTitleüzere ç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 site SiteMapNode eşleme 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, NameValueCollection nesneleri kullanan SiteMapNode ancak temel SiteMapNode sınıfta bulunmayan ek Attributes özellikler gerektiren site eşleme sağlayıcıları için ek öznitelik koleksiyonu sağlanır.

Oluşturucular

Name Description
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 yeni bir örneğini SiteMapNode 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. key Düğümün temsil ettiği sayfayı, başlığı ve açıklamayı ve düğümü yöneten site haritası sağlayıcısını tanımlar.

SiteMapNode(SiteMapProvider, String, String, String)

Düğümün temsil ettiği sayfayı SiteMapNode , key bir başlığı ve düğümü yöneten site haritası sağlayıcısını tanımlamak için belirtilen URL'yi kullanarak sınıfın yeni bir örneğini başlatır.

SiteMapNode(SiteMapProvider, String, String)

Belirtilen URL'yi, düğümün SiteMapNode temsil ettiği sayfayı tanımlamak için öğesini key ve düğümü yöneten site haritası sağlayıcısını kullanarak sınıfın yeni bir örneğini başlatır.

SiteMapNode(SiteMapProvider, String)

Düğümün temsil ettiği sayfayı SiteMapNode ve düğümü yöneten site haritası sağlayıcısını tanımlamak için belirtilen key öğesini kullanarak sınıfının yeni bir örneğini başlatır.

Özellikler

Name Description
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 dayalı bir kaynak dizesinden Attributes özel bir öznitelik alır veya ayarlar.

Key

Site haritası düğümü için arama anahtarını temsil eden bir dize alır.

NextSibling

SiteMapNode Sonraki düğümü, (varsa) özelliğine ParentNode göre geçerli düğümle aynı hiyerarşik düzeyde 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 izlendiğ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 SiteMapNode ilişkili rollerin koleksiyonunu alır veya ayarlar.

RootNode

Bir site haritası sağlayıcı hiyerarşisinde 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 ettiği sayfanın URL'sini SiteMapNode alır veya ayarlar.

Yöntemler

Name Description
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ı gösteren bir değer alır.

GetAllNodes()

Ayrım derecesine bakılmaksızın çağıran düğümün alt öğeleri olan tüm SiteMapNode nesnelerin salt okunur bir koleksiyonunu alır.

GetDataSourceView(SiteMapDataSource, String)

SiteMapDataSourceView Geçerli düğümle ilişkili nesneyi alır.

GetExplicitResourceString(String, String, Boolean)

Yerelleştirilmeye yönelik bir SiteMapNode özniteliğe, 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 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()

Geçerli örneğin Type 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 bir 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 Objectbasit 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ı

Name Description
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 alt düğümleri 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.