SiteMapNode Constructors

Definitie

Initialiseert een nieuw exemplaar van de SiteMapNode klasse en koppelt deze aan het opgegeven SiteMapProvider object.

Overloads

Name Description
SiteMapNode(SiteMapProvider, String)

Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven key instantie om de pagina te identificeren die het knooppunt vertegenwoordigt en de siteoverzichtprovider die het knooppunt beheert.

SiteMapNode(SiteMapProvider, String, String)

Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven URL, een key om de pagina te identificeren die het knooppunt vertegenwoordigt en de siteoverzichtprovider die het knooppunt beheert.

SiteMapNode(SiteMapProvider, String, String, String)

Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven URL, een key om de pagina te identificeren die het knooppunt vertegenwoordigt, een titel en de siteoverzichtprovider die het knooppunt beheert.

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

Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven URL, een key om de pagina te identificeren die het knooppunt vertegenwoordigt, een titel en beschrijving en de siteoverzichtprovider die het knooppunt beheert.

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

Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven siteoverzichtprovider waarmee het knooppunt, de URL, de titel, de beschrijving, de rollen, aanvullende kenmerken en expliciete en impliciete resourcesleutels voor lokalisatie worden beheerd.

SiteMapNode(SiteMapProvider, String)

Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven key instantie om de pagina te identificeren die het knooppunt vertegenwoordigt en de siteoverzichtprovider die het knooppunt beheert.

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)

Parameters

provider
SiteMapProvider

Het SiteMapProvider knooppunt waaraan het knooppunt is gekoppeld.

key
String

Een providerspecifieke opzoeksleutel.

Uitzonderingen

SiteMapProvider is null.

– of –

key is null.

Opmerkingen

De XmlSiteMapProvider-klasse, de standaard-SiteMapProvider provider-implementatie voor ASP.NET, gebruikt de eigenschap SiteMapNode.Url als zoeksleutel, als er een wordt opgegeven voor het knooppunt (als er geen URL wordt opgegeven, wordt er een tracerings-id voor het knooppunt gegenereerd). Daarom moet elk SiteMapNode besturingselement dat een URL levert en door de provider XmlSiteMapProvider wordt gebruikt, een unieke URL hebben binnen het bereik van de provider.

Van toepassing op

SiteMapNode(SiteMapProvider, String, String)

Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven URL, een key om de pagina te identificeren die het knooppunt vertegenwoordigt en de siteoverzichtprovider die het knooppunt beheert.

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)

Parameters

provider
SiteMapProvider

Het SiteMapProvider knooppunt waaraan het knooppunt is gekoppeld.

key
String

Een providerspecifieke opzoeksleutel.

url
String

De URL van de pagina die het knooppunt vertegenwoordigt binnen de site.

Uitzonderingen

SiteMapProvider is null.

– of –

key is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de SiteMapNodeCollection constructor gebruikt om een nieuwe SiteMapNodeCollection verzameling te maken en vervolgens elementen eraan toevoegt met de Add methode.

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

Opmerkingen

De XmlSiteMapProvider-klasse, de standaard-SiteMapProvider provider-implementatie voor ASP.NET, gebruikt de eigenschap SiteMapNode.Url als zoeksleutel, als er een wordt opgegeven voor het knooppunt (als er geen URL wordt opgegeven, wordt er een tracerings-id voor het knooppunt gegenereerd). Daarom moet elk SiteMapNode object dat een URL levert en door de provider XmlSiteMapProvider wordt gebruikt, een unieke URL hebben binnen het bereik van de provider.

Van toepassing op

SiteMapNode(SiteMapProvider, String, String, String)

Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven URL, een key om de pagina te identificeren die het knooppunt vertegenwoordigt, een titel en de siteoverzichtprovider die het knooppunt beheert.

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)

Parameters

provider
SiteMapProvider

Het SiteMapProvider knooppunt waaraan het knooppunt is gekoppeld.

key
String

Een providerspecifieke opzoeksleutel.

url
String

De URL van de pagina die het knooppunt vertegenwoordigt binnen de site.

title
String

Een label voor het knooppunt, vaak weergegeven door navigatiebesturingselementen.

Uitzonderingen

SiteMapProvider is null.

– of –

key is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de SiteMapNode constructor gebruikt om een nieuw exemplaar van de SiteMapNode klasse te maken. Het knooppunt wordt geïnitialiseerd met waarden uit een Microsoft Access databaserij.

Dit codevoorbeeld maakt deel uit van een groter voorbeeld dat is opgegeven voor de BuildSiteMap methode.

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()

Opmerkingen

De XmlSiteMapProvider-klasse, de standaard-SiteMapProvider provider-implementatie voor ASP.NET, gebruikt de eigenschap SiteMapNode.Url als zoeksleutel, als er een wordt opgegeven voor het knooppunt (als er geen URL wordt opgegeven, wordt er een tracerings-id voor het knooppunt gegenereerd). Daarom moet elk SiteMapNode object dat een URL levert en door de provider XmlSiteMapProvider wordt gebruikt, een unieke URL hebben binnen het bereik van de provider.

Als er geen title is opgegeven, retourneert de aanroep naar de Title eigenschap het String.Empty veld.

Van toepassing op

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

Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven URL, een key om de pagina te identificeren die het knooppunt vertegenwoordigt, een titel en beschrijving en de siteoverzichtprovider die het knooppunt beheert.

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)

Parameters

provider
SiteMapProvider

Het SiteMapProvider knooppunt waaraan het knooppunt is gekoppeld.

key
String

Een providerspecifieke opzoeksleutel.

url
String

De URL van de pagina die het knooppunt vertegenwoordigt binnen de site.

title
String

Een label voor het knooppunt, vaak weergegeven door navigatiebesturingselementen.

description
String

Een beschrijving van de pagina die het knooppunt vertegenwoordigt.

Uitzonderingen

SiteMapProvider is null.

– of –

key is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de SiteMapNode constructor gebruikt om een SiteMapNode object te maken door gegevens van een eenvoudig tekstbestand te parseren om een siteoverzicht in het geheugen te maken.

Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de abstracte 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 &&
                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

Opmerkingen

De XmlSiteMapProvider-klasse, de standaard-SiteMapProvider provider-implementatie voor ASP.NET, gebruikt de eigenschap SiteMapNode.Url als zoeksleutel, als er een wordt opgegeven voor het knooppunt (als er geen URL wordt opgegeven, wordt er een tracerings-id voor het knooppunt gegenereerd). Daarom moet elk SiteMapNode object dat een URL levert en door de provider XmlSiteMapProvider wordt gebruikt, een unieke URL hebben binnen het bereik van de provider.

Als er geen title of description niet is opgegeven, retourneren aanroepen naar de Title of Description eigenschappen een String.Empty veld.

Zie ook

Van toepassing op

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

Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven siteoverzichtprovider waarmee het knooppunt, de URL, de titel, de beschrijving, de rollen, aanvullende kenmerken en expliciete en impliciete resourcesleutels voor lokalisatie worden beheerd.

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)

Parameters

provider
SiteMapProvider

Het SiteMapProvider knooppunt waaraan het knooppunt is gekoppeld.

key
String

Een providerspecifieke opzoeksleutel.

url
String

De URL van de pagina die het knooppunt vertegenwoordigt binnen de site.

title
String

Een label voor het knooppunt, vaak weergegeven door navigatiebesturingselementen.

description
String

Een beschrijving van de pagina die het knooppunt vertegenwoordigt.

roles
IList

Een IList van de rollen die de pagina mogen weergeven die wordt vertegenwoordigd door de SiteMapNode.

attributes
NameValueCollection

Een NameValueCollection van de aanvullende kenmerken die worden gebruikt voor het initialiseren van de SiteMapNode.

explicitResourceKeys
NameValueCollection

Een NameValueCollection van expliciete resourcesleutels die worden gebruikt voor lokalisatie.

implicitResourceKey
String

Een impliciete resourcesleutel die wordt gebruikt voor lokalisatie.

Uitzonderingen

SiteMapProvider is null.

– of –

key is null.

Opmerkingen

De XmlSiteMapProvider-klasse, de standaard-SiteMapProvider provider-implementatie voor ASP.NET, gebruikt de eigenschap SiteMapNode.Url als zoeksleutel, als er een wordt opgegeven voor het knooppunt (als er geen URL wordt opgegeven, wordt er een tracerings-id voor het knooppunt gegenereerd). Daarom moet elk SiteMapNode object dat een URL levert en door de provider XmlSiteMapProvider wordt gebruikt, een unieke URL hebben binnen het bereik van de provider.

De NameValueCollection verzameling kenmerken waarmee de SiteMapNode eigenschap is gemaakt, is beschikbaar via de Attributes eigenschap en maakt het eenvoudig om extra kenmerken toe te passen op een siteoverzichtknooppunt en de mogelijkheden ervan uit te breiden zonder dat hiervoor een aangepaste klasse hoeft te worden afgeleid.

Geef een IList verzameling rollen op om een set rollen op te geven waarmee het knooppunt kan worden weergegeven wanneer de SecurityTrimmingEnabled eigenschap wordt geretourneerd true. Zie SecurityTrimmingEnabled voor meer informatie.

De XmlSiteMapProvider provider gebruikt de SiteMapNode.Url eigenschap als zoeksleutel. Daarom moet elke SiteMapNode url die door de provider XmlSiteMapProvider wordt gebruikt, een unieke URL hebben binnen het bereik van de provider.

Als er geen title of description niet is opgegeven, retourneren aanroepen naar de Title of Description eigenschappen een String.Empty veld.

Als u programmatisch resources voor lokalisatie wilt opgeven, stelt u de waarde in van implicitResourceKey een unieke naam die wordt gebruikt om gelokaliseerde resources voor het knooppunt te identificeren of explicitResourceKeys stelt u in op een NameValueCollection verzameling name/value paren waar name de knooppunteigenschap of het aangepaste kenmerk is om lokalisatiewaarden voor de knooppunteigenschap of het aangepaste kenmerk te lokaliseren en value bevat. De gelokaliseerde waarden kunnen vervolgens worden ingesteld in de juiste RESX-bestanden. Zie Instructies voor het Title voor meer informatie over het lokaliseren van de Description, SiteMapNodeen eventuele aangepaste eigenschappen van een object. Zie voor de syntaxisvereisten van de explicitResourceKeys verzameling NameValueCollection.

Zie ook

Van toepassing op