SiteMapNode Konstruktory

Definice

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

Přetížení

SiteMapNode(SiteMapProvider, String)

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

SiteMapNode(SiteMapProvider, String, String)

Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, k identifikaci stránky, key 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, key a k identifikaci stránky, kterou uzel představuje, název a zprostředkovatele mapy webu, který spravuje uzel.

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

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

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

Inicializuje novou instanci třídy pomocí zadaného SiteMapNode poskytovatele 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 zprostředkovatele mapy lokality, 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 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 pro uzel zadaný (pokud není adresa URL zadaná, vygeneruje se pro uzel sledovací identifikátor). Proto každý SiteMapNode ovládací prvek, který poskytuje adresu URL a používá XmlSiteMapProvider ho, 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 identifikaci stránky, key 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 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í konstruktoru SiteMapNodeCollection vytvořit novou SiteMapNodeCollection kolekci a poté do ní přidat prvky 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 pro uzel zadaný (pokud není adresa URL zadaná, vygeneruje se pro uzel sledovací identifikátor). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán objektem , 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, key a k identifikaci stránky, kterou uzel představuje, název a zprostředkovatele 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 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 pomocí navigačních ovládacích prvků.

Výjimky

SiteMapProvider je null.

-nebo-

key je null.

Příklady

Následující příklad kódu ukazuje, jak použít SiteMapNode konstruktor k vytvoření nové instance 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 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 pro uzel zadaný (pokud není adresa URL zadaná, vygeneruje se pro uzel sledovací identifikátor). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán objektem , XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.

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

Platí pro

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

Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, a k identifikaci stránky, key kterou uzel představuje, název a popis a zprostředkovatele 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 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 pomocí navigačních ovládacích prvků.

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 použít SiteMapNode konstruktor k vytvoření objektu SiteMapNode 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 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 pro uzel zadaný (pokud není adresa URL zadaná, vygeneruje se pro uzel sledovací identifikátor). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán objektem , XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.

Pokud není zadaný žádný title nebo description , vrátí volání Title vlastnosti String.Empty nebo Description pole.

Viz také

Platí pro

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

Inicializuje novou instanci třídy pomocí zadaného SiteMapNode poskytovatele 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 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 pomocí navigačních ovládacích prvků.

description
String

Popis stránky, kterou uzel představuje.

roles
IList

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

attributes
NameValueCollection

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

explicitResourceKeys
NameValueCollection

A NameValueCollection explicitních klíčů prostředků používaných k 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 pro uzel zadaný (pokud není adresa URL zadaná, vygeneruje se pro uzel sledovací identifikátor). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán objektem , 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 umožňuje snadno použít další atributy na uzlu mapy webu a rozšířit jeho schopnosti bez odvození vlastní třídy k tomu.

IList Zadejte kolekci rolí poskytující sadu rolí, které můžou zobrazit uzel, když SecurityTrimmingEnabled vlastnost vrátí truehodnotu . Další informace naleznete v tématu SecurityTrimmingEnabled.

Zprostředkovatel XmlSiteMapProvider používá SiteMapNode.Url vlastnost jako klíč vyhledávání. To znamená, že každá SiteMapNode adresa, kterou XmlSiteMapProvider používá, musí mít jedinečnou adresu URL v rámci oboru poskytovatele.

Pokud není zadaný žádný title nebo description , vrátí volání Title vlastnosti String.Empty nebo Description pole.

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

Viz také

Platí pro