Sdílet prostřednictvím


SiteMapNode Konstruktory

Definice

Inicializuje novou instanci SiteMapNode třídy a přidruží ji k zadanému SiteMapProvider objektu.

Přetížení

Name Description
SiteMapNode(SiteMapProvider, String)

Inicializuje novou instanci SiteMapNode třídy pomocí zadané key k identifikaci stránky, kterou uzel představuje, a poskytovatele mapy webu, který spravuje uzel.

SiteMapNode(SiteMapProvider, String, String)

Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, k key identifikaci stránky, kterou uzel představuje, a zprostředkovatele mapy webu, který spravuje uzel.

SiteMapNode(SiteMapProvider, String, String, String)

Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, a key identifikuje stránku, kterou uzel představuje, název a zprostředkovatel mapy webu, který spravuje uzel.

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

Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, a key identifikuje stránku, kterou uzel představuje, název a popis a zprostředkovatel mapy webu, který spravuje uzel.

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

Inicializuje novou instanci SiteMapNode třídy pomocí zadaného zprostředkovatele mapy webu, který spravuje uzel, adresu URL, název, popis, role, další atributy a explicitní a implicitní klíče prostředků pro lokalizaci.

SiteMapNode(SiteMapProvider, String)

Inicializuje novou instanci SiteMapNode třídy pomocí zadané key k identifikaci stránky, kterou uzel představuje, a poskytovatele mapy webu, který spravuje uzel.

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)

Parametry

provider
SiteMapProvider

Uzel SiteMapProvider , ke kterému je uzel přidružený.

key
String

Vyhledávací klíč specifický pro zprostředkovatele.

Výjimky

SiteMapProvider je null.

nebo

key je null.

Poznámky

Třída XmlSiteMapProvider , která je výchozí SiteMapProvider implementací zprostředkovatele pro ASP.NET, používá SiteMapNode.Url vlastnost jako vyhledávací klíč, pokud je k uzlu k dispozici (pokud není k dispozici adresa URL, pro uzel se vygeneruje identifikátor sledování). Proto každý SiteMapNode ovládací prvek, který poskytuje adresu URL a který je používán XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.

Platí pro

SiteMapNode(SiteMapProvider, String, String)

Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, k key identifikaci stránky, kterou uzel představuje, a zprostředkovatele mapy webu, který spravuje uzel.

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)

Parametry

provider
SiteMapProvider

Uzel SiteMapProvider , ke kterému je uzel přidružený.

key
String

Vyhledávací klíč specifický pro zprostředkovatele.

url
String

Adresa URL stránky, kterou uzel představuje v rámci webu.

Výjimky

SiteMapProvider je null.

nebo

key je null.

Příklady

Následující příklad kódu ukazuje, jak pomocí SiteMapNodeCollection konstruktoru vytvořit novou SiteMapNodeCollection kolekci a pak do ní přidat elementy pomocí Add metody.

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

Poznámky

Třída XmlSiteMapProvider , která je výchozí SiteMapProvider implementací zprostředkovatele pro ASP.NET, používá SiteMapNode.Url vlastnost jako vyhledávací klíč, pokud je k uzlu k dispozici (pokud není k dispozici adresa URL, pro uzel se vygeneruje identifikátor sledování). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.

Platí pro

SiteMapNode(SiteMapProvider, String, String, String)

Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, a key identifikuje stránku, kterou uzel představuje, název a zprostředkovatel mapy webu, který spravuje uzel.

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)

Parametry

provider
SiteMapProvider

Uzel SiteMapProvider , ke kterému je uzel přidružený.

key
String

Vyhledávací klíč specifický pro zprostředkovatele.

url
String

Adresa URL stránky, kterou uzel představuje v rámci webu.

title
String

Popisek uzlu, který se často zobrazuje navigačními ovládacími prvky

Výjimky

SiteMapProvider je null.

nebo

key je null.

Příklady

Následující příklad kódu ukazuje, jak pomocí SiteMapNode konstruktoru vytvořit novou instanci SiteMapNode třídy. Uzel se inicializuje s hodnotami z řádku databáze Aplikace Microsoft Access.

Tento příklad kódu je součástí většího příkladu poskytnutého pro metodu BuildSiteMap .

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

Poznámky

Třída XmlSiteMapProvider , která je výchozí SiteMapProvider implementací zprostředkovatele pro ASP.NET, používá SiteMapNode.Url vlastnost jako vyhledávací klíč, pokud je k uzlu k dispozici (pokud není k dispozici adresa URL, pro uzel se vygeneruje identifikátor sledování). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.

title Pokud není k dispozici, volání vlastnosti Title vrátí String.Empty pole.

Platí pro

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

Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, a key identifikuje stránku, kterou uzel představuje, název a popis a zprostředkovatel mapy webu, který spravuje uzel.

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)

Parametry

provider
SiteMapProvider

Uzel SiteMapProvider , ke kterému je uzel přidružený.

key
String

Vyhledávací klíč specifický pro zprostředkovatele.

url
String

Adresa URL stránky, kterou uzel představuje v rámci webu.

title
String

Popisek uzlu, který se často zobrazuje navigačními ovládacími prvky

description
String

Popis stránky, kterou uzel představuje.

Výjimky

SiteMapProvider je null.

nebo

key je null.

Příklady

Následující příklad kódu ukazuje, jak pomocí SiteMapNode konstruktoru SiteMapNode vytvořit objekt parsováním dat z jednoduchého textového souboru k sestavení mapy webu v paměti.

Tento příklad kódu je součástí většího příkladu poskytnutého pro abstraktní SiteMapProvider třídu.

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

Poznámky

Třída XmlSiteMapProvider , která je výchozí SiteMapProvider implementací zprostředkovatele pro ASP.NET, používá SiteMapNode.Url vlastnost jako vyhledávací klíč, pokud je k uzlu k dispozici (pokud není k dispozici adresa URL, pro uzel se vygeneruje identifikátor sledování). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.

Pokud není title k dispozici nebo description není k dispozici, volání do Title pole nebo Description vlastnosti vrátí String.Empty pole.

Viz také

Platí pro

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

Inicializuje novou instanci SiteMapNode třídy pomocí zadaného zprostředkovatele mapy webu, který spravuje uzel, adresu URL, název, popis, role, další atributy a explicitní a implicitní klíče prostředků pro lokalizaci.

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)

Parametry

provider
SiteMapProvider

Uzel SiteMapProvider , ke kterému je uzel přidružený.

key
String

Vyhledávací klíč specifický pro zprostředkovatele.

url
String

Adresa URL stránky, kterou uzel představuje v rámci webu.

title
String

Popisek uzlu, který se často zobrazuje navigačními ovládacími prvky

description
String

Popis stránky, kterou uzel představuje.

roles
IList

Role IList , které mají povoleno zobrazit stránku reprezentovanou stránkou SiteMapNode.

attributes
NameValueCollection

A NameValueCollection dalších atributů použitých k inicializaci SiteMapNode.

explicitResourceKeys
NameValueCollection

Explicitní NameValueCollection klíče prostředků používané pro lokalizaci

implicitResourceKey
String

Implicitní klíč prostředku používaný k lokalizaci.

Výjimky

SiteMapProvider je null.

nebo

key je null.

Poznámky

Třída XmlSiteMapProvider , která je výchozí SiteMapProvider implementací zprostředkovatele pro ASP.NET, používá SiteMapNode.Url vlastnost jako vyhledávací klíč, pokud je k uzlu k dispozici (pokud není k dispozici adresa URL, pro uzel se vygeneruje identifikátor sledování). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.

Kolekce NameValueCollection atributů, pomocí které SiteMapNode je vytvořena, je k dispozici prostřednictvím Attributes vlastnosti a usnadňuje použití dalších atributů na uzel mapy webu a rozšíření jeho schopností bez odvození vlastní třídy k tomu.

IList Zadejte kolekci rolí pro poskytnutí sady rolí, které mohou zobrazit uzel při SecurityTrimmingEnabled vrácení truevlastnosti . Další informace najdete na webu SecurityTrimmingEnabled.

Zprostředkovatel XmlSiteMapProvider používá SiteMapNode.Url vlastnost jako vyhledávací klíč. Proto každý SiteMapNode , který je používán poskytovatelem XmlSiteMapProvider , musí mít jedinečnou adresu URL v oboru poskytovatele.

Pokud není title k dispozici nebo description není k dispozici, volání do Title pole nebo Description vlastnosti vrátí String.Empty pole.

Pokud chcete určit prostředky pro lokalizaci prostřednictvím kódu programu, nastavte hodnotu jedinečného implicitResourceKey názvu, který se použije k identifikaci lokalizovaných prostředků pro uzel, nebo na explicitResourceKeysNameValueCollection kolekci name/value dvojic, kde name je vlastnost uzlu nebo vlastní atribut pro lokalizaci a value obsahuje hodnoty lokalizace pro vlastnost uzlu nebo vlastní atribut. Lokalizované hodnoty je pak možné nastavit v příslušných souborech .resx. Další informace o tom, jak lokalizovat Title, Descriptiona všechny vlastní vlastnosti objektu SiteMapNode naleznete v tématu Postupy: Lokalizace Site-Map Data. Požadavky na syntaxi kolekce najdete v explicitResourceKeys tématu NameValueCollection.

Viz také

Platí pro