Nyelv

SiteMapNode Konstruktorok

Definíció

Inicializálja az SiteMapNode osztály új példányát, és társítja a megadott SiteMapProvider objektummal.

Túlterhelések

Name Description
SiteMapNode(SiteMapProvider, String)

Inicializálja az SiteMapNode osztály új példányát a megadottak key alapján a csomópont által képviselt lap és a csomópontot kezelő helytérkép-szolgáltató azonosításához.

SiteMapNode(SiteMapProvider, String, String)

Inicializálja az SiteMapNode osztály új példányát a megadott URL-cím, key a csomópont által képviselt lap és a csomópontot kezelő helytérkép-szolgáltató azonosításához.

SiteMapNode(SiteMapProvider, String, String, String)

Inicializálja az SiteMapNode osztály új példányát a megadott URL-címmel, a key csomópont által képviselt lap azonosításához, egy címmel és a csomópontot kezelő helylekép-szolgáltatóval.

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

Inicializálja az SiteMapNode osztály új példányát a megadott URL-címmel, a key csomópont által képviselt lap azonosításához, egy címmel és leírással, valamint a csomópontot kezelő helytérkép-szolgáltatóval.

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

Inicializálja az SiteMapNode osztály új példányát a megadott helytérkép-szolgáltató használatával, amely kezeli a csomópontot, az URL-címet, a címet, a leírást, a szerepköröket, a további attribútumokat, valamint a honosítás explicit és implicit erőforráskulcsait.

SiteMapNode(SiteMapProvider, String)

Inicializálja az SiteMapNode osztály új példányát a megadottak key alapján a csomópont által képviselt lap és a csomópontot kezelő helytérkép-szolgáltató azonosításához.

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)

Paraméterek

provider
SiteMapProvider

Az SiteMapProvider a csomópont, amelyhez a csomópont társítva van.

key
String

Szolgáltatóspecifikus keresési kulcs.

Kivételek

SiteMapProvider az null.

-vagy-

key az null.

Megjegyzések

A XmlSiteMapProvider osztály, amely a ASP.NET alapértelmezett SiteMapProvider szolgáltatói implementációja, a SiteMapNode.Url tulajdonságot használja keresési kulcsként, ha a csomóponthoz van megadva (ha nincs megadva URL-cím, a rendszer nyomkövetési azonosítót hoz létre a csomóponthoz). Ezért minden olyan SiteMapNode vezérlőelemnek, amely egy URL-címet biztosít, és amelyet a XmlSiteMapProvider szolgáltató használ, egyedi URL-címvel kell rendelkeznie a szolgáltató hatókörén belül.

A következőre érvényes:

SiteMapNode(SiteMapProvider, String, String)

Inicializálja az SiteMapNode osztály új példányát a megadott URL-cím, key a csomópont által képviselt lap és a csomópontot kezelő helytérkép-szolgáltató azonosításához.

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)

Paraméterek

provider
SiteMapProvider

Az SiteMapProvider a csomópont, amelyhez a csomópont társítva van.

key
String

Szolgáltatóspecifikus keresési kulcs.

url
String

Annak a lapnak az URL-címe, amelyet a csomópont a webhelyen belül jelöl.

Kivételek

SiteMapProvider az null.

-vagy-

key az null.

Példák

Az alábbi példakód bemutatja, hogyan hozhat létre új SiteMapNodeCollection gyűjteményt a SiteMapNodeCollection konstruktor használatával, majd hogyan adhat hozzá elemeket a Add metódussal.

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

Megjegyzések

A XmlSiteMapProvider osztály, amely a ASP.NET alapértelmezett SiteMapProvider szolgáltatói implementációja, a SiteMapNode.Url tulajdonságot használja keresési kulcsként, ha a csomóponthoz van megadva (ha nincs megadva URL-cím, a rendszer nyomkövetési azonosítót hoz létre a csomóponthoz). Ezért minden SiteMapNode olyan objektumnak, amely egy URL-címet biztosít, és amelyet a XmlSiteMapProvider szolgáltató használ, egyedi URL-címvel kell rendelkeznie a szolgáltató hatókörén belül.

A következőre érvényes:

SiteMapNode(SiteMapProvider, String, String, String)

Inicializálja az SiteMapNode osztály új példányát a megadott URL-címmel, a key csomópont által képviselt lap azonosításához, egy címmel és a csomópontot kezelő helylekép-szolgáltatóval.

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)

Paraméterek

provider
SiteMapProvider

Az SiteMapProvider a csomópont, amelyhez a csomópont társítva van.

key
String

Szolgáltatóspecifikus keresési kulcs.

url
String

Annak a lapnak az URL-címe, amelyet a csomópont a webhelyen belül jelöl.

title
String

A csomópont címkéje, amelyet gyakran a navigációs vezérlők jelenítenek meg.

Kivételek

SiteMapProvider az null.

-vagy-

key az null.

Példák

Az alábbi példakód bemutatja, hogyan használható a konstruktor az SiteMapNode osztály új példányának SiteMapNode létrehozására. A csomópont inicializálva van egy Microsoft Access adatbázissor értékeivel.

Ez a példakód egy nagyobb, a BuildSiteMap metódushoz megadott példa része.

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

Megjegyzések

A XmlSiteMapProvider osztály, amely a ASP.NET alapértelmezett SiteMapProvider szolgáltatói implementációja, a SiteMapNode.Url tulajdonságot használja keresési kulcsként, ha a csomóponthoz van megadva (ha nincs megadva URL-cím, a rendszer nyomkövetési azonosítót hoz létre a csomóponthoz). Ezért minden SiteMapNode olyan objektumnak, amely egy URL-címet biztosít, és amelyet a XmlSiteMapProvider szolgáltató használ, egyedi URL-címvel kell rendelkeznie a szolgáltató hatókörén belül.

Ha nincs title megadva, a Title tulajdonság hívásai visszaadják a String.Empty mezőt.

A következőre érvényes:

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

Inicializálja az SiteMapNode osztály új példányát a megadott URL-címmel, a key csomópont által képviselt lap azonosításához, egy címmel és leírással, valamint a csomópontot kezelő helytérkép-szolgáltatóval.

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)

Paraméterek

provider
SiteMapProvider

Az SiteMapProvider a csomópont, amelyhez a csomópont társítva van.

key
String

Szolgáltatóspecifikus keresési kulcs.

url
String

Annak a lapnak az URL-címe, amelyet a csomópont a webhelyen belül jelöl.

title
String

A csomópont címkéje, amelyet gyakran a navigációs vezérlők jelenítenek meg.

description
String

A csomópont által képviselt lap leírása.

Kivételek

SiteMapProvider az null.

-vagy-

key az null.

Példák

Az alábbi példakód bemutatja, hogyan hozhat létre SiteMapNode objektumot a SiteMapNode konstruktor használatával egy egyszerű szövegfájl adatainak elemzésével a helytérkép memóriában való létrehozásához.

Ez a példakód egy nagyobb, absztrakt SiteMapProvider osztályhoz tartozó példa része.

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

Megjegyzések

A XmlSiteMapProvider osztály, amely a ASP.NET alapértelmezett SiteMapProvider szolgáltatói implementációja, a SiteMapNode.Url tulajdonságot használja keresési kulcsként, ha a csomóponthoz van megadva (ha nincs megadva URL-cím, a rendszer nyomkövetési azonosítót hoz létre a csomóponthoz). Ezért minden SiteMapNode olyan objektumnak, amely egy URL-címet biztosít, és amelyet a XmlSiteMapProvider szolgáltató használ, egyedi URL-címvel kell rendelkeznie a szolgáltató hatókörén belül.

Ha nincs title megadva, description vagy nincs megadva, a hívás vagy a TitleDescription tulajdonságok egy String.Empty mezőt adnak vissza.

Lásd még

A következőre érvényes:

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

Inicializálja az SiteMapNode osztály új példányát a megadott helytérkép-szolgáltató használatával, amely kezeli a csomópontot, az URL-címet, a címet, a leírást, a szerepköröket, a további attribútumokat, valamint a honosítás explicit és implicit erőforráskulcsait.

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)

Paraméterek

provider
SiteMapProvider

Az SiteMapProvider a csomópont, amelyhez a csomópont társítva van.

key
String

Szolgáltatóspecifikus keresési kulcs.

url
String

Annak a lapnak az URL-címe, amelyet a csomópont a webhelyen belül jelöl.

title
String

A csomópont címkéje, amelyet gyakran a navigációs vezérlők jelenítenek meg.

description
String

A csomópont által képviselt lap leírása.

roles
IList

Olyan IList szerepkörök egyike, amelyek megtekinthetik a lap által SiteMapNodeképviselt oldalt.

attributes
NameValueCollection

További NameValueCollection attribútumok, amelyeket a SiteMapNode.

explicitResourceKeys
NameValueCollection

A NameValueCollection honosításhoz használt explicit erőforráskulcsok egyike.

implicitResourceKey
String

A honosításhoz használt implicit erőforráskulcs.

Kivételek

SiteMapProvider az null.

-vagy-

key az null.

Megjegyzések

A XmlSiteMapProvider osztály, amely a ASP.NET alapértelmezett SiteMapProvider szolgáltatói implementációja, a SiteMapNode.Url tulajdonságot használja keresési kulcsként, ha a csomóponthoz van megadva (ha nincs megadva URL-cím, a rendszer nyomkövetési azonosítót hoz létre a csomóponthoz). Ezért minden SiteMapNode olyan objektumnak, amely egy URL-címet biztosít, és amelyet a XmlSiteMapProvider szolgáltató használ, egyedi URL-címvel kell rendelkeznie a szolgáltató hatókörén belül.

A NameValueCollection létrehozott attribútumok gyűjteménye a SiteMapNode tulajdonságon keresztül érhető el, és megkönnyíti a további attribútumok alkalmazását egy helytérkép-csomóponton, és anélkül bővíti a képességeit, hogy Attributes ehhez egyéni osztályt hoz létre.

Adja meg a IList szerepkörök gyűjteményét, hogy olyan szerepköröket biztosítson, amelyek a tulajdonság visszatérésekor megtekinthetik a SecurityTrimmingEnabled csomópontot true. További információért lásd SecurityTrimmingEnabled.

A XmlSiteMapProvider szolgáltató keresési kulcsként használja a SiteMapNode.Url tulajdonságot. Ezért a szolgáltató által SiteMapNode használt url-címnek XmlSiteMapProvider egyedinek kell lennie a szolgáltató hatókörén belül.

Ha nincs title megadva, description vagy nincs megadva, a hívás vagy a TitleDescription tulajdonságok egy String.Empty mezőt adnak vissza.

A honosításhoz szükséges erőforrások programozott megadásához állítsa be a csomópont honosított erőforrásainak azonosítására szolgáló egyedi név értékétimplicitResourceKey, vagy állítsa olyan explicitResourceKeysNameValueCollection párok gyűjteményérename/value, amelyekben name a csomópont tulajdonsága vagy egyéni attribútuma honosítandó, és value a csomóponttulajdonság vagy az egyéni attribútum honosítási értékeit tartalmazza. A honosított értékek ezután a megfelelő .resx fájlokban állíthatók be. Az objektumok honosításával TitleDescriptionés egyéni tulajdonságaival SiteMapNode kapcsolatos további információkért lásd: Az adatok honosítása Site-Map. A gyűjtemény explicitResourceKeysszintaxiskövetelményei: NameValueCollection .

Lásd még

A következőre érvényes: