SiteMapNode SiteMapNode SiteMapNode SiteMapNode Class

Определение

Представляет узел в иерархической структуре карты веб-узла, например, описываемой классом SiteMap и классами, которые реализуют абстрактный класс SiteMapProvider.Represents a node in the hierarchical site map structure such as that described by the SiteMap class and classes that implement the abstract SiteMapProvider class.

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
Наследование
SiteMapNodeSiteMapNodeSiteMapNodeSiteMapNode
Реализации

Примеры

Этот раздел содержит два примера кода.This section contains two code examples. В первом примере кода показано, как создание новой коллекции узлов карт веб и добавление элементов к нему.The first code example demonstrates how to create a new site map node collection and add elements to it. Во втором примере кода показано, как для загрузки данных карты узла из текстового файла.The second code example demonstrates how to load site map data from a text file.

В следующем примере кода демонстрируется использование SiteMapNodeCollection конструктор для создания нового SiteMapNodeCollection коллекции и добавлять элементы к нему с помощью Add метод.The following code example demonstrates how to use the SiteMapNodeCollection constructor to create a new SiteMapNodeCollection collection, and then add elements to it with the Add method.

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

В следующем примере кода показано, как SimpleTextSiteMapProvider анализирует текстовый файл, содержащий данные карты узла в строках с разделителями запятыми.The following code example demonstrates how the SimpleTextSiteMapProvider parses a text file that contains site map data in comma-delimited strings. Новый SiteMapNode объект добавляется к коллекциям внутреннего отслеживания класса для каждой строки, которая фактически считывается из файла.A new SiteMapNode object is added to the internal tracking collections of the class for each line that is read from the file.

Данный пример кода является частью большего примера для SiteMapProvider класса.This code example is part of a larger example provided for the SiteMapProvider class.

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 'LoadSiteMapFromStore
End Class 'SimpleTextSiteMapProvider

Комментарии

Объект SiteMapNode объект представляет страницу веб-сайта в структуре карты сайта.A SiteMapNode object represents a Web site page in a site map structure. SiteMapNode объекты загружаются статическим SiteMap класса во время выполнения, используя один или несколько поставщиков карты узла для загрузки данных карты узла из постоянного хранилища в памяти.SiteMapNode objects are loaded by the static SiteMap class at run time using one or more site map providers to load site map data from persistent storage into memory. SiteMapNode объекты, заключаются в оболочку SiteMapNodeItem класса для использования с веб-сервера управления, такие как SiteMapPath элемента управления.SiteMapNode objects are wrapped by the SiteMapNodeItem class for use by Web server controls, such as the SiteMapPath control.

SiteMapNode Класс содержит несколько свойств, которые используются для описания одной страницы на веб-узле, включая свойства, описывающие страницу, такие как Url, Title, и Description свойства.The SiteMapNode class includes several properties that are used to describe a single page in a Web site, including properties that describe a page, such as the Url, Title, and Description properties. Тогда как Url используется объектами XmlSiteMapProvider класс, являющийся поставщика карты узла по умолчанию для ASP.NET, в качестве ключа для поиска в внутренних коллекциях, которые поставщик использует для отслеживания узлов, SiteMapNode класс поддерживает базовой Key свойство, которое может использоваться поставщиками карты веб-узла для отслеживания узлов.Whereas the Url property is used by the XmlSiteMapProvider class, which is the default site map provider for ASP.NET, as a lookup key in the internal collections that the provider uses to track nodes, the SiteMapNode class supports a basic Key property that can be used by site map providers to track nodes. Кроме того Url свойство используется элементами управления навигации для отображения гиперссылок на страницы в структуре навигации.Additionally, the Url property is used by navigation controls to render hyperlinks to pages within a navigation structure. Title Свойство — это понятное имя для SiteMapNode, часто является таким же, как заголовок HTML веб-формы и используется элементами управления навигации для отображения простого метки.The Title property is a friendly name for the SiteMapNode, is often the same as the HTML title of a Web Form, and is used by navigation controls to render simple labels. Наконец NameValueCollection коллекцию дополнительных Attributes атрибуты доступен для сайта, в которых используются поставщики карты SiteMapNode объектов, но требует дополнительных свойств, которые недоступны в базе SiteMapNode класса.Finally, a NameValueCollection collection of additional Attributes attributes is available to site map providers that use SiteMapNode objects, but require additional properties that are not available in the base SiteMapNode class.

Конструкторы

SiteMapNode(SiteMapProvider, String) SiteMapNode(SiteMapProvider, String) SiteMapNode(SiteMapProvider, String) SiteMapNode(SiteMapProvider, String)

Выполняет инициализацию нового экземпляра класса SiteMapNode, используя указанный параметр key для определения страницы, которую представляет узел, и поставщика карты веб-узла, который управляет данным узлом.Initializes a new instance of the SiteMapNode class, using the specified key to identify the page that the node represents and the site map provider that manages the node.

SiteMapNode(SiteMapProvider, String, String) SiteMapNode(SiteMapProvider, String, String) SiteMapNode(SiteMapProvider, String, String) SiteMapNode(SiteMapProvider, String, String)

Выполняет инициализацию нового экземпляра класса SiteMapNode, используя указанный URL-адрес key для определения страницы, которую представляет узел, и поставщика карты веб-узла, который управляет данным узлом.Initializes a new instance of the SiteMapNode class using the specified URL, a key to identify the page that the node represents, and the site map provider that manages the node.

SiteMapNode(SiteMapProvider, String, String, String) SiteMapNode(SiteMapProvider, String, String, String) SiteMapNode(SiteMapProvider, String, String, String) SiteMapNode(SiteMapProvider, String, String, String)

Выполняет инициализацию нового экземпляра класса SiteMapNode, используя указанный URL-адрес key для определения страницы, которую представляет узел, названия и поставщика карты веб-узла, который управляет данным узлом.Initializes a new instance of the SiteMapNode class using the specified URL, a key to identify the page that the node represents, a title, and the site map provider that manages the node.

SiteMapNode(SiteMapProvider, String, String, String, String) SiteMapNode(SiteMapProvider, String, String, String, String) SiteMapNode(SiteMapProvider, String, String, String, String) SiteMapNode(SiteMapProvider, String, String, String, String)

Выполняет инициализацию нового экземпляра класса SiteMapNode, используя указанный URL-адрес key для определения страницы, которую представляет узел, названия и описания, а также поставщика карты веб-узла, который управляет данным узлом.Initializes a new instance of the SiteMapNode class using the specified URL, a key to identify the page that the node represents, a title and description, and the site map provider that manages the node.

SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String)

Выполняет инициализацию нового экземпляра класса SiteMapNode с использованием указанного поставщика карты узла, который управляет данным узлом, URL-адреса, названия, описания, ролей, дополнительных атрибутов и явного и неявного ключей ресурса для локализации.Initializes a new instance of the SiteMapNode class using the specified site map provider that manages the node, URL, title, description, roles, additional attributes, and explicit and implicit resource keys for localization.

Свойства

Attributes Attributes Attributes Attributes

Получает или задает коллекцию атрибутов в дополнение к строго типизированным свойствам, которые описываются для класса SiteMapNode.Gets or sets a collection of additional attributes beyond the strongly typed properties that are defined for the SiteMapNode class.

ChildNodes ChildNodes ChildNodes ChildNodes

Получает или задает все дочерние узлы текущего объекта SiteMapNode из связанного поставщика SiteMapProvider.Gets or sets all the child nodes of the current SiteMapNode object from the associated SiteMapProvider provider.

Description Description Description Description

Получает или задает описание для объекта SiteMapNode.Gets or sets a description for the SiteMapNode.

HasChildNodes HasChildNodes HasChildNodes HasChildNodes

Получает значение, показывающее наличие дочерних узлов у текущего узла SiteMapNode.Gets a value indicating whether the current SiteMapNode has any child nodes.

Item[String] Item[String] Item[String] Item[String]

Получает или задает настраиваемый атрибут из коллекции Attributes или строку ресурса, основываясь на указанном ключе.Gets or sets a custom attribute from the Attributes collection or a resource string based on the specified key.

Key Key Key Key

Получает строку, представляющую ключ поиска для узла карты узла.Gets a string representing a lookup key for a site map node.

NextSibling NextSibling NextSibling NextSibling

Получает следующий узел SiteMapNode на том же самом иерархическом уровне, что и текущий узел, относительно свойства ParentNode (если искомый узел существует).Gets the next SiteMapNode node on the same hierarchical level as the current one, relative to the ParentNode property (if one exists).

ParentNode ParentNode ParentNode ParentNode

Получает или задает объект SiteMapNode, который является родительским для текущего узла.Gets or sets the SiteMapNode object that is the parent of the current node.

PreviousSibling PreviousSibling PreviousSibling PreviousSibling

Получает предыдущий объект SiteMapNode на том же самом иерархическом уровне, что и текущий объект, относительно объекта ParentNode (если объект существует).Gets the previous SiteMapNode object on the same level as the current one, relative to the ParentNode object (if one exists).

Provider Provider Provider Provider

Получает поставщика SiteMapProvider, который отслеживает объект SiteMapNode.Gets the SiteMapProvider provider that the SiteMapNode object is tracked by.

ReadOnly ReadOnly ReadOnly ReadOnly

Получает или задает значение, указывающее, может ли изменяться узел карты узла.Gets or sets a value indicating whether the site map node can be modified.

ResourceKey ResourceKey ResourceKey ResourceKey

Получает или задает ключ ресурса, который используется для локализации объекта SiteMapNode.Gets or sets the resource key that is used to localize the SiteMapNode.

Roles Roles Roles Roles

Возвращает или задает коллекцию ролей, связанных с объектом SiteMapNode (используется при фильтрации по ролям безопасности).Gets or sets a collection of roles that are associated with the SiteMapNode object, used during security trimming.

RootNode RootNode RootNode RootNode

Получает корневой узел корневого поставщика в иерархии поставщиков карты узла.Gets the root node of the root provider in a site map provider hierarchy. Если иерархии поставщиков не существует, то свойство RootNode получает корневой узел текущего поставщика.If no provider hierarchy exists, the RootNode property gets the root node of the current provider.

Title Title Title Title

Получает или задает название объекта SiteMapNode.Gets or sets the title of the SiteMapNode object.

Url Url Url Url

Получает или задает URL-адрес страницы, которую представляет объект SiteMapNode.Gets or sets the URL of the page that the SiteMapNode object represents.

Методы

Clone() Clone() Clone() Clone()

Создает новый узел, который представляет собой копию текущего узла.Creates a new node that is a copy of the current node.

Clone(Boolean) Clone(Boolean) Clone(Boolean) Clone(Boolean)

Создает новую копию текущего узла, при необходимости клонируя все родительские узлы и узлы предков текущего узла.Creates a new copy that is a copy of the current node, optionally cloning all parent and ancestor nodes of the current node.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Возвращает значение,указывающее, идентичен ли текущий объект SiteMapNode указанному объекту.Gets a value indicating whether the current SiteMapNode is identical to the specified object.

GetAllNodes() GetAllNodes() GetAllNodes() GetAllNodes()

Возвращает доступную только для чтения коллекцию всех объектов SiteMapNode, которые являются потомками вызываемого узла независимо от степени разделения.Retrieves a read-only collection of all SiteMapNode objects that are descendants of the calling node, regardless of the degree of separation.

GetDataSourceView(SiteMapDataSource, String) GetDataSourceView(SiteMapDataSource, String) GetDataSourceView(SiteMapDataSource, String) GetDataSourceView(SiteMapDataSource, String)

Возвращает объект SiteMapDataSourceView, который связан с текущим узлом.Retrieves the SiteMapDataSourceView object that is associated with the current node.

GetExplicitResourceString(String, String, Boolean) GetExplicitResourceString(String, String, Boolean) GetExplicitResourceString(String, String, Boolean) GetExplicitResourceString(String, String, Boolean)

Возвращает локализованную строку, основываясь на атрибуте SiteMapNode для локализации или используемую по умолчанию строку, если ресурс не найден, и логическую величину, показывающую, выдается ли исключение, если ресурс не найден.Retrieves a localized string based on a SiteMapNode attribute to localize, a default string to return if no resource is found, and a Boolean value indicating whether to throw an exception if no resource is found.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Возвращает хэш-код объекта SiteMapNode.Returns the hash code of the SiteMapNode object.

GetHierarchicalDataSourceView() GetHierarchicalDataSourceView() GetHierarchicalDataSourceView() GetHierarchicalDataSourceView()

Возвращает объект SiteMapHierarchicalDataSourceView, который связан с текущим узлом.Retrieves the SiteMapHierarchicalDataSourceView object that is associated with the current node.

GetImplicitResourceString(String) GetImplicitResourceString(String) GetImplicitResourceString(String) GetImplicitResourceString(String)

Получает локализованную строку, основываясь на имени атрибута и свойстве ResourceKey, которое задается поставщиком SiteMapProvider, отслеживающим узел SiteMapNode.Gets a localized string based on the attribute name and ResourceKey property that is specified by the SiteMapProvider by which the SiteMapNode is tracked.

GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
IsAccessibleToUser(HttpContext) IsAccessibleToUser(HttpContext) IsAccessibleToUser(HttpContext) IsAccessibleToUser(HttpContext)

Получает значение, показывающее, может ли быть просмотрен пользователем указанный узел карты узла в заданном контексте.Gets a value indicating whether the specified site map node can be viewed by the user in the specified context.

IsDescendantOf(SiteMapNode) IsDescendantOf(SiteMapNode) IsDescendantOf(SiteMapNode) IsDescendantOf(SiteMapNode)

Получает значение, показывающее, является ли текущий узел карты узла дочерним узлом или прямым потомком указанного узла.Gets a value indicating whether the current site map node is a child or a direct descendant of the specified node.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Преобразует значение данного экземпляра класса SiteMapNode в эквивалентное строковое представление.Converts the value of this instance of the SiteMapNode class to its equivalent string representation.

Явные реализации интерфейса

ICloneable.Clone() ICloneable.Clone() ICloneable.Clone() ICloneable.Clone()

Создает новый узел, который представляет собой копию текущего узла.Creates a new node that is a copy of the current node. Описание этого члена см. в разделе Clone().For a description of this member, see Clone().

IHierarchyData.GetChildren() IHierarchyData.GetChildren() IHierarchyData.GetChildren() IHierarchyData.GetChildren()

Возвращает иерархические дочерние элементы текущего элемента.Retrieves the hierarchical children data items of the current item. Описание этого члена см. в разделе GetChildren().For a description of this member, see GetChildren().

IHierarchyData.GetParent() IHierarchyData.GetParent() IHierarchyData.GetParent() IHierarchyData.GetParent()

Возвращает иерархический родительский элемент текущего элемента.Retrieves the hierarchical parent of the current item. Описание этого члена см. в разделе GetParent().For a description of this member, see GetParent().

IHierarchyData.HasChildren IHierarchyData.HasChildren IHierarchyData.HasChildren IHierarchyData.HasChildren

Возвращает значение, указывающее, имеются ли у текущего объекта SiteMapNode какие-либо дочерние узлы.Gets a value that indicates whether the current SiteMapNode object has any child nodes. Описание этого члена см. в разделе HasChildren.For a description of this member, see HasChildren.

IHierarchyData.Item IHierarchyData.Item IHierarchyData.Item IHierarchyData.Item

Получает иерархический элемент данных.Gets the hierarchical data item. Описание этого члена см. в разделе Item.For a description of this member, see Item.

IHierarchyData.Path IHierarchyData.Path IHierarchyData.Path IHierarchyData.Path

Получает путь элемента иерархических данных.Gets the path of the hierarchical data item. Описание этого члена см. в разделе Path.For a description of this member, see Path.

IHierarchyData.Type IHierarchyData.Type IHierarchyData.Type IHierarchyData.Type

Получает строку, которая представляет имя типа иерархического элемента данных.Gets a string that represents the type name of the hierarchical data item. Описание этого члена см. в разделе Type.For a description of this member, see Type.

INavigateUIData.Description INavigateUIData.Description INavigateUIData.Description INavigateUIData.Description

Возвращает свойство Description узла карты сайта.Gets the Description property of the site map node. Описание этого члена см. в разделе Description.For a description of this member, see Description.

INavigateUIData.Name INavigateUIData.Name INavigateUIData.Name INavigateUIData.Name

Возвращает свойство Title узла карты сайта.Gets the Title property of the site map node. Описание этого члена см. в разделе Name.For a description of this member, see Name.

INavigateUIData.NavigateUrl INavigateUIData.NavigateUrl INavigateUIData.NavigateUrl INavigateUIData.NavigateUrl

Возвращает свойство Url узла карты сайта.Gets the Url property of the site map node. Описание этого члена см. в разделе NavigateUrl.For a description of this member, see NavigateUrl.

INavigateUIData.Value INavigateUIData.Value INavigateUIData.Value INavigateUIData.Value

Возвращает свойство Title узла карты сайта.Gets the Title property of the site map node. Описание этого члена см. в разделе Value.For a description of this member, see Value.

Применяется к

Дополнительно