SiteMapNode Konstruktorer

Definition

Initierar en ny instans av SiteMapNode klassen och associerar den med det angivna SiteMapProvider objektet.

Överlagringar

Name Description
SiteMapNode(SiteMapProvider, String)

Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna key för att identifiera den sida som noden representerar och webbplatsöversiktsprovidern som hanterar noden.

SiteMapNode(SiteMapProvider, String, String)

Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en key för att identifiera den sida som noden representerar och webbplatsöversiktsprovidern som hanterar noden.

SiteMapNode(SiteMapProvider, String, String, String)

Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en key för att identifiera den sida som noden representerar, en rubrik och webbplatsöversiktsprovidern som hanterar noden.

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

Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en key för att identifiera den sida som noden representerar, en rubrik och en beskrivning samt webbplatsöversiktsprovidern som hanterar noden.

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

Initierar en ny instans av SiteMapNode klassen med den angivna webbplatsöversiktsprovidern som hanterar noden, URL:en, rubrik, beskrivning, roller, ytterligare attribut och explicita och implicita resursnycklar för lokalisering.

SiteMapNode(SiteMapProvider, String)

Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna key för att identifiera den sida som noden representerar och webbplatsöversiktsprovidern som hanterar noden.

public:
 SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key);
public SiteMapNode(System.Web.SiteMapProvider provider, string key);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String)

Parametrar

provider
SiteMapProvider

Med SiteMapProvider vilken noden är associerad.

key
String

En providerspecifik uppslagsnyckel.

Undantag

SiteMapProvider är null.

-eller-

key är null.

Kommentarer

Klassen XmlSiteMapProvider, som är standardimplementeringen SiteMapProvider provider för ASP.NET, använder egenskapen SiteMapNode.Url som en uppslagsnyckel, om en anges för noden (om en URL inte anges genereras en spårningsidentifierare för noden). Därför måste alla SiteMapNode kontroller som tillhandahåller en URL och som används av XmlSiteMapProvider ha en unik URL inom providerns omfång.

Gäller för

SiteMapNode(SiteMapProvider, String, String)

Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en key för att identifiera den sida som noden representerar och webbplatsöversiktsprovidern som hanterar noden.

public:
 SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key, System::String ^ url);
public SiteMapNode(System.Web.SiteMapProvider provider, string key, string url);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String, url As String)

Parametrar

provider
SiteMapProvider

Med SiteMapProvider vilken noden är associerad.

key
String

En providerspecifik uppslagsnyckel.

url
String

URL:en till sidan som noden representerar på platsen.

Undantag

SiteMapProvider är null.

-eller-

key är null.

Exempel

Följande kodexempel visar hur du använder SiteMapNodeCollection konstruktorn för att skapa en ny SiteMapNodeCollection samling och sedan lägger till element i den Add med -metoden.

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

Kommentarer

Klassen XmlSiteMapProvider, som är standardimplementeringen SiteMapProvider provider för ASP.NET, använder egenskapen SiteMapNode.Url som en uppslagsnyckel, om en anges för noden (om en URL inte anges genereras en spårningsidentifierare för noden). Därför måste alla SiteMapNode objekt som tillhandahåller en URL och som används av XmlSiteMapProvider ha en unik URL inom providerns omfång.

Gäller för

SiteMapNode(SiteMapProvider, String, String, String)

Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en key för att identifiera den sida som noden representerar, en rubrik och webbplatsöversiktsprovidern som hanterar noden.

public:
 SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key, System::String ^ url, System::String ^ title);
public SiteMapNode(System.Web.SiteMapProvider provider, string key, string url, string title);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string * string * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String, url As String, title As String)

Parametrar

provider
SiteMapProvider

Med SiteMapProvider vilken noden är associerad.

key
String

En providerspecifik uppslagsnyckel.

url
String

URL:en till sidan som noden representerar på platsen.

title
String

En etikett för noden, som ofta visas av navigeringskontroller.

Undantag

SiteMapProvider är null.

-eller-

key är null.

Exempel

Följande kodexempel visar hur du använder SiteMapNode konstruktorn för att skapa en ny instans av SiteMapNode klassen. Noden initieras med värden från en Microsoft Access databasrad.

Det här kodexemplet är en del av ett större exempel för BuildSiteMap metoden.

OleDbCommand^ rootNodeCommand = gcnew OleDbCommand
   ("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL", accessConnection);
OleDbDataReader^ rootNodeReader = rootNodeCommand->ExecuteReader();
if ( rootNodeReader->HasRows )
{
   rootNodeReader->Read();
   rootNodeId = rootNodeReader->GetInt32( 0 );
   
   // Create a SiteMapNode that references the current StaticSiteMapProvider.
   rootNode = gcnew SiteMapNode(this, rootNodeId.ToString(), 
      rootNodeReader->GetString( 1 ),rootNodeReader->GetString( 2 ));
}
else
   return nullptr;
rootNodeReader->Close();

OleDbCommand rootNodeCommand =
    new OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL",
                     accessConnection);
OleDbDataReader rootNodeReader = rootNodeCommand.ExecuteReader();

if(rootNodeReader.HasRows) {
    rootNodeReader.Read();
    rootNodeId = rootNodeReader.GetInt32(0);
    // Create a SiteMapNode that references the current StaticSiteMapProvider.
    rootNode   = new SiteMapNode(this,
                                 rootNodeId.ToString(),
                                 rootNodeReader.GetString(1),
                                 rootNodeReader.GetString(2));
}
else
{
    return null;
}

rootNodeReader.Close();
Dim rootNodeCommand As New OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL", accessConnection)
Dim rootNodeReader As OleDbDataReader = rootNodeCommand.ExecuteReader()

If rootNodeReader.HasRows Then
    rootNodeReader.Read()
    rootNodeId = rootNodeReader.GetInt32(0)
    ' Create a SiteMapNode that references the current StaticSiteMapProvider.
    aRootNode = New SiteMapNode(Me, rootNodeId.ToString(), rootNodeReader.GetString(1), rootNodeReader.GetString(2))
Else
    Return Nothing
End If
rootNodeReader.Close()

Kommentarer

Klassen XmlSiteMapProvider, som är standardimplementeringen SiteMapProvider provider för ASP.NET, använder egenskapen SiteMapNode.Url som en uppslagsnyckel, om en anges för noden (om en URL inte anges genereras en spårningsidentifierare för noden). Därför måste alla SiteMapNode objekt som tillhandahåller en URL och som används av XmlSiteMapProvider ha en unik URL inom providerns omfång.

Om inget title anges returnerar anrop till Title egenskapen fältet String.Empty .

Gäller för

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

Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en key för att identifiera den sida som noden representerar, en rubrik och en beskrivning samt webbplatsöversiktsprovidern som hanterar noden.

public:
 SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key, System::String ^ url, System::String ^ title, System::String ^ description);
public SiteMapNode(System.Web.SiteMapProvider provider, string key, string url, string title, string description);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string * string * string * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String, url As String, title As String, description As String)

Parametrar

provider
SiteMapProvider

Med SiteMapProvider vilken noden är associerad.

key
String

En providerspecifik uppslagsnyckel.

url
String

URL:en till sidan som noden representerar på platsen.

title
String

En etikett för noden, som ofta visas av navigeringskontroller.

description
String

En beskrivning av sidan som noden representerar.

Undantag

SiteMapProvider är null.

-eller-

key är null.

Exempel

Följande kodexempel visar hur du använder SiteMapNode konstruktorn för att skapa ett SiteMapNode objekt genom att parsa data från en enkel textfil för att skapa en webbplatskarta i minnet.

Det här kodexemplet är en del av ett större exempel för den abstrakta SiteMapProvider klassen.

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

Kommentarer

Klassen XmlSiteMapProvider, som är standardimplementeringen SiteMapProvider provider för ASP.NET, använder egenskapen SiteMapNode.Url som en uppslagsnyckel, om en anges för noden (om en URL inte anges genereras en spårningsidentifierare för noden). Därför måste alla SiteMapNode objekt som tillhandahåller en URL och som används av XmlSiteMapProvider ha en unik URL inom providerns omfång.

Om inget title eller description anges returnerar anrop till Title egenskaperna eller Description ett String.Empty fält.

Se även

Gäller för

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

Initierar en ny instans av SiteMapNode klassen med den angivna webbplatsöversiktsprovidern som hanterar noden, URL:en, rubrik, beskrivning, roller, ytterligare attribut och explicita och implicita resursnycklar för lokalisering.

public:
 SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key, System::String ^ url, System::String ^ title, System::String ^ description, System::Collections::IList ^ roles, System::Collections::Specialized::NameValueCollection ^ attributes, System::Collections::Specialized::NameValueCollection ^ explicitResourceKeys, System::String ^ implicitResourceKey);
public SiteMapNode(System.Web.SiteMapProvider provider, string key, string url, string title, string description, System.Collections.IList roles, System.Collections.Specialized.NameValueCollection attributes, System.Collections.Specialized.NameValueCollection explicitResourceKeys, string implicitResourceKey);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string * string * string * string * System.Collections.IList * System.Collections.Specialized.NameValueCollection * System.Collections.Specialized.NameValueCollection * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String, url As String, title As String, description As String, roles As IList, attributes As NameValueCollection, explicitResourceKeys As NameValueCollection, implicitResourceKey As String)

Parametrar

provider
SiteMapProvider

Med SiteMapProvider vilken noden är associerad.

key
String

En providerspecifik uppslagsnyckel.

url
String

URL:en till sidan som noden representerar på platsen.

title
String

En etikett för noden, som ofta visas av navigeringskontroller.

description
String

En beskrivning av sidan som noden representerar.

roles
IList

En IList av roller som kan visa sidan som representeras av SiteMapNode.

attributes
NameValueCollection

En NameValueCollection av ytterligare attribut som används för att initiera SiteMapNode.

explicitResourceKeys
NameValueCollection

En NameValueCollection av explicita resursnycklar som används för lokalisering.

implicitResourceKey
String

En implicit resursnyckel som används för lokalisering.

Undantag

SiteMapProvider är null.

-eller-

key är null.

Kommentarer

Klassen XmlSiteMapProvider, som är standardimplementeringen SiteMapProvider provider för ASP.NET, använder egenskapen SiteMapNode.Url som en uppslagsnyckel, om en anges för noden (om en URL inte anges genereras en spårningsidentifierare för noden). Därför måste alla SiteMapNode objekt som tillhandahåller en URL och som används av XmlSiteMapProvider ha en unik URL inom providerns omfång.

Samlingen NameValueCollection med attribut som SiteMapNode skapas med är tillgänglig via Attributes egenskapen och gör det enkelt att tillämpa ytterligare attribut på en platsöversiktsnod och utöka dess funktioner utan att härleda en anpassad klass för att göra det.

Ange en IList samling roller för att tillhandahålla en uppsättning roller som kan visa noden när SecurityTrimmingEnabled egenskapen returnerar true. Mer information finns i SecurityTrimmingEnabled.

Providern XmlSiteMapProvider använder egenskapen SiteMapNode.Url som en uppslagsnyckel. Därför måste alla SiteMapNode som används av XmlSiteMapProvider ha en unik URL inom providerns omfång.

Om inget title eller description anges returnerar anrop till Title egenskaperna eller Description ett String.Empty fält.

För att programmatiskt ange resurser för lokalisering anger du antingen värdet implicitResourceKey för till ett unikt namn som ska användas för att identifiera lokaliserade resurser för noden eller ange explicitResourceKeys till en NameValueCollection samling name/value par där name är nodegenskapen eller det anpassade attributet för att lokalisera och value innehåller lokaliseringsvärden för nodegenskapen eller det anpassade attributet. De lokaliserade värdena kan sedan anges i lämpliga .resx-filer. Mer information om hur du lokaliserar Title, Descriptionoch eventuella anpassade egenskaper för ett SiteMapNode objekt finns i Så här lokaliserar du Site-Map data. Syntaxkraven för samlingen explicitResourceKeysfinns i NameValueCollection .

Se även

Gäller för