Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

SiteMapNode-Klasse

Stellt einen Knoten in der hierarchischen Siteübersichtsstruktur dar, z. B. der von der SiteMap-Klasse und den Klassen beschriebenen, die die abstrakte SiteMapProvider-Klasse implementieren.

Namespace: System.Web
Assembly: System.Web (in system.web.dll)

public class SiteMapNode : ICloneable, IHierarchyData, INavigateUIData
public class SiteMapNode implements ICloneable, IHierarchyData, 
	INavigateUIData
public class SiteMapNode implements ICloneable, IHierarchyData, 
	INavigateUIData
Nicht zutreffend.

Ein SiteMapNode-Objekt stellt die Seite einer Website in einer Siteübersichtsstruktur dar. SiteMapNode-Objekte werden zur Laufzeit von der statischen SiteMap-Klasse unter Verwendung eines oder mehrerer Siteübersichtsanbieter geladen, um Siteübersichtsdaten aus dem permanenten Speicher in den Arbeitsspeicher zu laden. SiteMapNode-Objekte werden von der SiteMapNodeItem-Klasse zur Verwendung durch Webserversteuerelemente eingeschlossen, z. B. durch das SiteMapPath-Steuerelement.

Die SiteMapNode-Klasse enthält mehrere Eigenschaften, mit denen eine einzelne Seite in einer Website beschrieben wird, einschließlich der Eigenschaften zum Beschreiben von Seiten wie UrlTitle und Description. Während die Url-Eigenschaft von der XmlSiteMapProvider-Klasse, die den Standardsiteübersichtsanbieter für ASP.NET darstellt, als Suchschlüssel in internen Auflistungen verwendet wird, die der Anbieter zur Knotenverfolgung verwendet, unterstützt die SiteMapNode-Klasse eine grundlegende Key-Eigenschaft, die von Siteübersichtsanbietern zur Verfolgung von Knoten verwendet werden kann. Darüber hinaus wird die Url-Eigenschaft von Navigationssteuerelementen verwendet, um Hyperlinks zu Seiten innerhalb einer Navigationsstruktur wiederzugeben. Die Title-Eigenschaft ist ein angezeigter Name für den SiteMapNode. Dieser ist häufig identisch mit dem HTML-Titel eines Web Forms und wird von Navigationssteuerelementen zur Wiedergabe von einfachen Bezeichnungen verwendet. Schließlich steht eine NameValueCollection-Auflistung mit zusätzlichen Attributes-Attributen für Siteübersichtsanbieter zur Verfügung, die zwar SiteMapNode-Objekte verwenden, jedoch zusätzliche Eigenschaften benötigen, die in der SiteMapNode-Basisklasse nicht verfügbar sind.

ThemaPosition
Gewusst wie: Programmgesteuertes Auflisten von SiteübersichtsknotenErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Konfigurieren mehrerer Siteübersichten und SiteübersichtsanbieterErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Filtern der von SiteMapDataSource-Webserversteuerelementen abgerufenen KnotenErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Programmgesteuertes Ändern von Siteübersichtsknoten im ArbeitsspeicherErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Anzeigen von Siteübersichtsdaten in nicht hierarchischen WebserversteuerelementenErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Hinzufügen einer einfachen SitenavigationErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Implementieren von ASP.NET-SiteübersichtsanbieternErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Programmgesteuertes Auflisten von SiteübersichtsknotenErstellen von ASP.NET-Webanwendungen
Gewusst wie: Filtern der von SiteMapDataSource-Webserversteuerelementen abgerufenen KnotenErstellen von ASP.NET-Webanwendungen
Gewusst wie: Konfigurieren mehrerer Siteübersichten und SiteübersichtsanbieterErstellen von ASP.NET-Webanwendungen
Gewusst wie: Programmgesteuertes Ändern von Siteübersichtsknoten im ArbeitsspeicherErstellen von ASP.NET-Webanwendungen
Gewusst wie: Anzeigen von Siteübersichtsdaten in nicht hierarchischen WebserversteuerelementenErstellen von ASP.NET-Webanwendungen
Gewusst wie: Programmgesteuertes Auflisten von SiteübersichtsknotenErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Konfigurieren mehrerer Siteübersichten und SiteübersichtsanbieterErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Filtern der von SiteMapDataSource-Webserversteuerelementen abgerufenen KnotenErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Programmgesteuertes Ändern von Siteübersichtsknoten im ArbeitsspeicherErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Anzeigen von Siteübersichtsdaten in nicht hierarchischen WebserversteuerelementenErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Hinzufügen einer einfachen SitenavigationErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Implementieren von ASP.NET-SiteübersichtsanbieternErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Hinzufügen einer einfachen SitenavigationErstellen von ASP.NET-Webanwendungen
Gewusst wie: Implementieren von ASP.NET-SiteübersichtsanbieternErstellen von ASP.NET-Webanwendungen

Dieser Abschnitt enthält zwei Codebeispiele. Im ersten Codebeispiel wird veranschaulicht, wie eine neue Knotenauflistung einer Siteübersicht erstellt wird, der Elemente hinzugefügt werden. Im zweiten Codebeispiel wird veranschaulicht, wie Siteübersichtsdaten aus einer Textdatei geladen werden.

Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe des SiteMapNodeCollection-Konstruktors eine neue SiteMapNodeCollection erstellt wird. Anschließend werden ihr mithilfe der Add-Methode Elemente hinzugefügt.

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

Im folgenden Codebeispiel wird veranschaulicht, wie der SimpleTextSiteMapProvider eine Textdatei analysiert, die Siteübersichtsdaten in durch Kommas getrennten Zeichenfolgen enthält. Ein neues SiteMapNode-Objekt wird den internen Trackingauflistungen der Klasse für jede Zeile hinzugefügt, die aus der Datei gelesen wird.

Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die SiteMapProvider-Klasse.

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 &&
                (null == nodeValues[3] || nodeValues[3] == String.Empty))
            {
              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;
}

  • AspNetHostingPermission  für den Betrieb in einer Hostumgebung. Anforderungswert: LinkDemand; Berechtigungswert: Minimal.
  • AspNetHostingPermission  für den Betrieb in einer Hostumgebung. Anforderungswert: InheritanceDemand; Berechtigungswert: Minimal.

System.Object
  System.Web.SiteMapNode

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 wird unter Windows Vista, Microsoft Windows XP SP2 und Windows Server 2003 SP1 unterstützt.

.NET Framework

Unterstützt in: 3.0, 2.0
Anzeigen: