SiteMapNode Klasa

Definicja

Reprezentuje węzeł w strukturze hierarchicznej mapy witryny, takiej jak opisana przez klasy SiteMap i klasy implementujące abstrakcyjną klasę 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
Dziedziczenie
SiteMapNode
Implementuje

Przykłady

Ten rozdział zawiera dwa przykłady kodu.This section contains two code examples. Pierwszy przykład kodu demonstruje, jak utworzyć nową kolekcję węzłów mapy witryny i dodać do niej elementy.The first code example demonstrates how to create a new site map node collection and add elements to it. Drugi przykład kodu demonstruje, jak załadować dane mapy witryny z pliku tekstowego.The second code example demonstrates how to load site map data from a text file.

Poniższy przykład kodu demonstruje, jak za pomocą konstruktora SiteMapNodeCollection utworzyć nową kolekcję SiteMapNodeCollection, a następnie dodać do niej elementy przy użyciu metody 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

Poniższy przykład kodu demonstruje, jak SimpleTextSiteMapProvider analizuje plik tekstowy, który zawiera dane mapy lokacji w ciągach rozdzielanych przecinkami.The following code example demonstrates how the SimpleTextSiteMapProvider parses a text file that contains site map data in comma-delimited strings. Nowy obiekt SiteMapNode zostanie dodany do wewnętrznych kolekcji śledzenia klasy dla każdego wiersza, który jest odczytywany z pliku.A new SiteMapNode object is added to the internal tracking collections of the class for each line that is read from the file.

Ten przykładowy kod jest częścią większego przykładu udostępnionego dla klasy 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
End Class

Uwagi

Obiekt SiteMapNode reprezentuje stronę witryny sieci Web w strukturze mapy witryny.A SiteMapNode object represents a Web site page in a site map structure. obiekty SiteMapNode są ładowane przez klasę SiteMap statyczną w czasie wykonywania przy użyciu co najmniej jednego dostawcy mapy witryny w celu załadowania danych mapy lokacji z magazynu trwałego do pamięci.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. obiekty SiteMapNode są opakowane przez klasę SiteMapNodeItem do użycia przez formanty serwera sieci Web, takie jak kontrolka SiteMapPath.SiteMapNode objects are wrapped by the SiteMapNodeItem class for use by Web server controls, such as the SiteMapPath control.

Klasa SiteMapNode zawiera kilka właściwości, które są używane do opisywania pojedynczej strony w witrynie sieci Web, w tym właściwości opisujące stronę, takie jak Url, Titlei właściwości 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. Właściwość Url jest używana przez klasę XmlSiteMapProvider, która jest domyślnym dostawcą mapy witryny dla ASP.NET, jako klucz wyszukiwania w kolekcjach wewnętrznych używanych przez dostawcę do śledzenia węzłów, Klasa SiteMapNode obsługuje podstawową Właściwość Key, która może być używana przez dostawców mapy witryny do śledzenia węzłów.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. Ponadto Właściwość Url jest używana przez kontrolki nawigacji do renderowania hiperłącze do stron w strukturze nawigacyjnej.Additionally, the Url property is used by navigation controls to render hyperlinks to pages within a navigation structure. Właściwość Title jest przyjazną nazwą dla SiteMapNode, jest często taka sama jak tytuł HTML formularza sieci Web i jest używana przez kontrolki nawigacji do renderowania prostych etykiet.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. Na koniec NameValueCollection zbiór dodatkowych atrybutów Attributes jest dostępny dla dostawców mapy witryny, które używają SiteMapNode obiektów, ale wymagają dodatkowych właściwości, które nie są dostępne w klasie Base 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.

Konstruktory

SiteMapNode(SiteMapProvider, String)

Inicjuje nowe wystąpienie klasy SiteMapNode, używając określonej key do identyfikowania strony reprezentowanej przez węzeł i dostawcy mapy witryny, który zarządza węzłem.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)

Inicjuje nowe wystąpienie klasy SiteMapNode przy użyciu podanego adresu URL, key do zidentyfikowania strony reprezentowanej przez węzeł oraz dostawcy mapy witryny, który zarządza węzłem.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)

Inicjuje nowe wystąpienie klasy SiteMapNode przy użyciu podanego adresu URL, key do zidentyfikowania strony reprezentowanej przez węzeł, tytułu i dostawcy mapy witryny, który zarządza węzłem.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)

Inicjuje nowe wystąpienie klasy SiteMapNode przy użyciu podanego adresu URL, key do zidentyfikowania strony reprezentowanej przez węzeł, tytułu i opisu oraz dostawcy mapy witryny, który zarządza węzłem.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)

Inicjuje nowe wystąpienie klasy SiteMapNode przy użyciu określonego dostawcy mapy witryny, który zarządza węzłem, adresem URL, tytułem, opisem, rolami, dodatkowymi atrybutami i jawnymi i niejawnymi kluczami zasobów dla lokalizacji.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.

Właściwości

Attributes

Pobiera lub ustawia kolekcję dodatkowych atrybutów poza właściwościami o jednoznacznie określonym typie, które są zdefiniowane dla klasy SiteMapNode.Gets or sets a collection of additional attributes beyond the strongly typed properties that are defined for the SiteMapNode class.

ChildNodes

Pobiera lub ustawia wszystkie węzły podrzędne bieżącego obiektu SiteMapNode ze skojarzonego dostawcy SiteMapProvider.Gets or sets all the child nodes of the current SiteMapNode object from the associated SiteMapProvider provider.

Description

Pobiera lub ustawia opis SiteMapNode.Gets or sets a description for the SiteMapNode.

HasChildNodes

Pobiera wartość wskazującą, czy bieżący SiteMapNode ma wszystkie węzły podrzędne.Gets a value indicating whether the current SiteMapNode has any child nodes.

Item[String]

Pobiera lub ustawia atrybut niestandardowy z kolekcji Attributes lub ciągu zasobu na podstawie określonego klucza.Gets or sets a custom attribute from the Attributes collection or a resource string based on the specified key.

Key

Pobiera ciąg reprezentujący klucz wyszukiwania dla węzła mapy witryny.Gets a string representing a lookup key for a site map node.

NextSibling

Pobiera następny SiteMapNode węzeł na tym samym poziomie hierarchicznym co bieżący, względem właściwości ParentNode (jeśli taka istnieje).Gets the next SiteMapNode node on the same hierarchical level as the current one, relative to the ParentNode property (if one exists).

ParentNode

Pobiera lub ustawia obiekt SiteMapNode, który jest elementem nadrzędnym bieżącego węzła.Gets or sets the SiteMapNode object that is the parent of the current node.

PreviousSibling

Pobiera poprzedni obiekt SiteMapNode na tym samym poziomie co bieżący, względem obiektu ParentNode (jeśli taki istnieje).Gets the previous SiteMapNode object on the same level as the current one, relative to the ParentNode object (if one exists).

Provider

Pobiera dostawcę SiteMapProvider, przez który obiekt SiteMapNode jest śledzony.Gets the SiteMapProvider provider that the SiteMapNode object is tracked by.

ReadOnly

Pobiera lub ustawia wartość wskazującą, czy można modyfikować węzeł mapy witryny.Gets or sets a value indicating whether the site map node can be modified.

ResourceKey

Pobiera lub ustawia klucz zasobu, który jest używany do lokalizowania SiteMapNode.Gets or sets the resource key that is used to localize the SiteMapNode.

Roles

Pobiera lub ustawia kolekcję ról, które są skojarzone z obiektem SiteMapNode używany podczas przycinania zabezpieczeń.Gets or sets a collection of roles that are associated with the SiteMapNode object, used during security trimming.

RootNode

Pobiera węzeł główny dostawcy głównego w hierarchii dostawcy mapy witryny.Gets the root node of the root provider in a site map provider hierarchy. Jeśli nie istnieje hierarchia dostawcy, właściwość RootNode pobiera węzeł główny bieżącego dostawcy.If no provider hierarchy exists, the RootNode property gets the root node of the current provider.

Title

Pobiera lub ustawia tytuł obiektu SiteMapNode.Gets or sets the title of the SiteMapNode object.

Url

Pobiera lub ustawia adres URL strony, którą reprezentuje obiekt SiteMapNode.Gets or sets the URL of the page that the SiteMapNode object represents.

Metody

Clone()

Tworzy nowy węzeł, który jest kopią bieżącego węzła.Creates a new node that is a copy of the current node.

Clone(Boolean)

Tworzy nową kopię, która jest kopią bieżącego węzła, opcjonalnie klonowanie wszystkich węzłów nadrzędnych i nadrzędnych bieżącego węzła.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)

Pobiera wartość wskazującą, czy bieżący SiteMapNode jest identyczny z określonym obiektem.Gets a value indicating whether the current SiteMapNode is identical to the specified object.

GetAllNodes()

Pobiera kolekcję tylko do odczytu dla wszystkich obiektów SiteMapNode, które są elementami podrzędnymi węzła wywołującego, niezależnie od zakresu separacji.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)

Pobiera obiekt SiteMapDataSourceView, który jest skojarzony z bieżącym węzłem.Retrieves the SiteMapDataSourceView object that is associated with the current node.

GetExplicitResourceString(String, String, Boolean)

Pobiera zlokalizowany ciąg oparty na atrybucie SiteMapNode, aby zlokalizować, domyślny ciąg, który ma zostać zwrócony, jeśli nie zostanie znaleziony żaden zasób, i wartość logiczna określająca, czy zgłosić wyjątek, jeśli nie zostanie znaleziony żaden zasób.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()

Zwraca kod skrótu obiektu SiteMapNode.Returns the hash code of the SiteMapNode object.

GetHierarchicalDataSourceView()

Pobiera obiekt SiteMapHierarchicalDataSourceView, który jest skojarzony z bieżącym węzłem.Retrieves the SiteMapHierarchicalDataSourceView object that is associated with the current node.

GetImplicitResourceString(String)

Pobiera zlokalizowany ciąg na podstawie nazwy atrybutu i właściwości ResourceKey, która jest określona przez SiteMapProvider, dla którego jest śledzone 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()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
IsAccessibleToUser(HttpContext)

Pobiera wartość wskazującą, czy określony węzeł mapy witryny może być wyświetlany przez użytkownika w określonym kontekście.Gets a value indicating whether the specified site map node can be viewed by the user in the specified context.

IsDescendantOf(SiteMapNode)

Pobiera wartość wskazującą, czy bieżący węzeł mapy witryny jest obiektem podrzędnym, czy bezpośrednim elementem podrzędnym określonego węzła.Gets a value indicating whether the current site map node is a child or a direct descendant of the specified node.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Konwertuje wartość tego wystąpienia klasy SiteMapNode na jego równoważną reprezentację w postaci ciągu.Converts the value of this instance of the SiteMapNode class to its equivalent string representation.

Jawne implementacje interfejsu

ICloneable.Clone()

Tworzy nowy węzeł, który jest kopią bieżącego węzła.Creates a new node that is a copy of the current node. Aby uzyskać opis tego elementu członkowskiego, zobacz Clone().For a description of this member, see Clone().

IHierarchyData.GetChildren()

Pobiera hierarchiczne elementy podrzędne danych bieżącego elementu.Retrieves the hierarchical children data items of the current item. Aby uzyskać opis tego elementu członkowskiego, zobacz GetChildren().For a description of this member, see GetChildren().

IHierarchyData.GetParent()

Pobiera hierarchiczny element nadrzędny bieżącego elementu.Retrieves the hierarchical parent of the current item. Aby uzyskać opis tego elementu członkowskiego, zobacz GetParent().For a description of this member, see GetParent().

IHierarchyData.HasChildren

Pobiera wartość wskazującą, czy bieżący obiekt SiteMapNode ma wszystkie węzły podrzędne.Gets a value that indicates whether the current SiteMapNode object has any child nodes. Aby uzyskać opis tego elementu członkowskiego, zobacz HasChildren.For a description of this member, see HasChildren.

IHierarchyData.Item

Pobiera element danych hierarchicznych.Gets the hierarchical data item. Aby uzyskać opis tego elementu członkowskiego, zobacz Item.For a description of this member, see Item.

IHierarchyData.Path

Pobiera ścieżkę elementu danych hierarchicznych.Gets the path of the hierarchical data item. Aby uzyskać opis tego elementu członkowskiego, zobacz Path.For a description of this member, see Path.

IHierarchyData.Type

Pobiera ciąg, który reprezentuje nazwę typu hierarchicznego elementu danych.Gets a string that represents the type name of the hierarchical data item. Aby uzyskać opis tego elementu członkowskiego, zobacz Type.For a description of this member, see Type.

INavigateUIData.Description

Pobiera właściwość Description węzła mapy witryny.Gets the Description property of the site map node. Aby uzyskać opis tego elementu członkowskiego, zobacz Description.For a description of this member, see Description.

INavigateUIData.Name

Pobiera właściwość Title węzła mapy witryny.Gets the Title property of the site map node. Aby uzyskać opis tego elementu członkowskiego, zobacz Name.For a description of this member, see Name.

INavigateUIData.NavigateUrl

Pobiera właściwość Url węzła mapy witryny.Gets the Url property of the site map node. Aby uzyskać opis tego elementu członkowskiego, zobacz NavigateUrl.For a description of this member, see NavigateUrl.

INavigateUIData.Value

Pobiera właściwość Title węzła mapy witryny.Gets the Title property of the site map node. Aby uzyskać opis tego elementu członkowskiego, zobacz Value.For a description of this member, see Value.

Dotyczy

Zobacz też