Bagikan melalui


SiteMapNode Konstruktor

Definisi

Menginisialisasi instans SiteMapNode baru kelas dan mengaitkannya dengan objek yang ditentukan SiteMapProvider .

Overload

SiteMapNode(SiteMapProvider, String)

Menginisialisasi instans SiteMapNode baru kelas, menggunakan yang ditentukan key untuk mengidentifikasi halaman yang diwakili simpul dan penyedia peta situs yang mengelola simpul.

SiteMapNode(SiteMapProvider, String, String)

Menginisialisasi instans SiteMapNode baru kelas menggunakan URL yang ditentukan, key untuk mengidentifikasi halaman yang diwakili simpul, dan penyedia peta situs yang mengelola simpul.

SiteMapNode(SiteMapProvider, String, String, String)

Menginisialisasi instans SiteMapNode baru kelas menggunakan URL yang ditentukan, key untuk mengidentifikasi halaman yang diwakili simpul, judul, dan penyedia peta situs yang mengelola simpul.

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

Menginisialisasi instans SiteMapNode baru kelas menggunakan URL yang ditentukan, key untuk mengidentifikasi halaman yang diwakili simpul, judul dan deskripsi, dan penyedia peta situs yang mengelola simpul.

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

Menginisialisasi instans SiteMapNode baru kelas menggunakan penyedia peta situs tertentu yang mengelola simpul, URL, judul, deskripsi, peran, atribut tambahan, dan kunci sumber daya eksplisit dan implisit untuk pelokalan.

SiteMapNode(SiteMapProvider, String)

Menginisialisasi instans SiteMapNode baru kelas, menggunakan yang ditentukan key untuk mengidentifikasi halaman yang diwakili simpul dan penyedia peta situs yang mengelola simpul.

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)

Parameter

provider
SiteMapProvider

yang SiteMapProvider dengannya simpul dikaitkan.

key
String

Kunci pencarian khusus penyedia.

Pengecualian

SiteMapProvideradalah null.

-atau-

keyadalah null.

Keterangan

Kelas XmlSiteMapProvider , yang merupakan implementasi penyedia default SiteMapProvider untuk ASP.NET, menggunakan SiteMapNode.Url properti sebagai kunci pencarian, jika disediakan untuk simpul (jika URL tidak disediakan, pengidentifikasi pelacakan dihasilkan untuk simpul). Oleh karena itu, kontrol apa pun SiteMapNode yang menyediakan URL dan digunakan oleh XmlSiteMapProvider harus memiliki URL unik dalam cakupan penyedia.

Berlaku untuk

SiteMapNode(SiteMapProvider, String, String)

Menginisialisasi instans SiteMapNode baru kelas menggunakan URL yang ditentukan, key untuk mengidentifikasi halaman yang diwakili simpul, dan penyedia peta situs yang mengelola simpul.

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)

Parameter

provider
SiteMapProvider

yang SiteMapProvider dengannya simpul dikaitkan.

key
String

Kunci pencarian khusus penyedia.

url
String

URL halaman yang diwakili simpul dalam situs.

Pengecualian

SiteMapProvideradalah null.

-atau-

keyadalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan SiteMapNodeCollection konstruktor untuk membuat koleksi baru SiteMapNodeCollection , lalu menambahkan elemen ke dalamnya dengan Add metode .

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

Keterangan

Kelas XmlSiteMapProvider , yang merupakan implementasi penyedia default SiteMapProvider untuk ASP.NET, menggunakan SiteMapNode.Url properti sebagai kunci pencarian, jika disediakan untuk simpul (jika URL tidak disediakan, pengidentifikasi pelacakan dihasilkan untuk simpul). Oleh karena itu, objek apa pun SiteMapNode yang menyediakan URL dan digunakan oleh XmlSiteMapProvider harus memiliki URL unik dalam cakupan penyedia.

Berlaku untuk

SiteMapNode(SiteMapProvider, String, String, String)

Menginisialisasi instans SiteMapNode baru kelas menggunakan URL yang ditentukan, key untuk mengidentifikasi halaman yang diwakili simpul, judul, dan penyedia peta situs yang mengelola simpul.

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)

Parameter

provider
SiteMapProvider

yang SiteMapProvider dengannya simpul dikaitkan.

key
String

Kunci pencarian khusus penyedia.

url
String

URL halaman yang diwakili simpul dalam situs.

title
String

Label untuk simpul, sering ditampilkan oleh kontrol navigasi.

Pengecualian

SiteMapProvideradalah null.

-atau-

keyadalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan SiteMapNode konstruktor untuk membuat instans SiteMapNode baru kelas. Simpul diinisialisasi dengan nilai dari baris database Microsoft Access.

Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk metode .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()

Keterangan

Kelas XmlSiteMapProvider , yang merupakan implementasi penyedia default SiteMapProvider untuk ASP.NET, menggunakan SiteMapNode.Url properti sebagai kunci pencarian, jika disediakan untuk simpul (jika URL tidak disediakan, pengidentifikasi pelacakan dihasilkan untuk simpul). Oleh karena itu, objek apa pun SiteMapNode yang menyediakan URL dan digunakan oleh XmlSiteMapProvider harus memiliki URL unik dalam cakupan penyedia.

Jika tidak title ada yang disediakan, panggilan ke Title properti mengembalikan String.Empty bidang .

Berlaku untuk

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

Menginisialisasi instans SiteMapNode baru kelas menggunakan URL yang ditentukan, key untuk mengidentifikasi halaman yang diwakili simpul, judul dan deskripsi, dan penyedia peta situs yang mengelola simpul.

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)

Parameter

provider
SiteMapProvider

yang SiteMapProvider dengannya simpul dikaitkan.

key
String

Kunci pencarian khusus penyedia.

url
String

URL halaman yang diwakili simpul dalam situs.

title
String

Label untuk simpul, sering ditampilkan oleh kontrol navigasi.

description
String

Deskripsi halaman yang diwakili simpul.

Pengecualian

SiteMapProvideradalah null.

-atau-

keyadalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan SiteMapNode konstruktor untuk membuat SiteMapNode objek dengan mengurai data dari file teks sederhana untuk membangun peta situs dalam memori.

Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk kelas abstrak SiteMapProvider .

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

Keterangan

Kelas XmlSiteMapProvider , yang merupakan implementasi penyedia default SiteMapProvider untuk ASP.NET, menggunakan SiteMapNode.Url properti sebagai kunci pencarian, jika disediakan untuk simpul (jika URL tidak disediakan, pengidentifikasi pelacakan dihasilkan untuk simpul). Oleh karena itu, objek apa pun SiteMapNode yang menyediakan URL dan digunakan oleh XmlSiteMapProvider harus memiliki URL unik dalam cakupan penyedia.

Jika tidak ada title atau description disediakan, panggilan ke Title properti atau Description mengembalikan String.Empty bidang.

Lihat juga

Berlaku untuk

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

Menginisialisasi instans SiteMapNode baru kelas menggunakan penyedia peta situs tertentu yang mengelola simpul, URL, judul, deskripsi, peran, atribut tambahan, dan kunci sumber daya eksplisit dan implisit untuk pelokalan.

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)

Parameter

provider
SiteMapProvider

yang SiteMapProvider dengannya simpul dikaitkan.

key
String

Kunci pencarian khusus penyedia.

url
String

URL halaman yang diwakili simpul dalam situs.

title
String

Label untuk simpul, sering ditampilkan oleh kontrol navigasi.

description
String

Deskripsi halaman yang diwakili simpul.

roles
IList

Peran IList yang diizinkan untuk melihat halaman yang diwakili oleh SiteMapNode.

attributes
NameValueCollection

NameValueCollection Atribut tambahan yang digunakan untuk menginisialisasi SiteMapNode.

explicitResourceKeys
NameValueCollection

Kunci NameValueCollection sumber daya eksplisit yang digunakan untuk pelokalan.

implicitResourceKey
String

Kunci sumber daya implisit yang digunakan untuk pelokalan.

Pengecualian

SiteMapProvideradalah null.

-atau-

keyadalah null.

Keterangan

Kelas XmlSiteMapProvider , yang merupakan implementasi penyedia default SiteMapProvider untuk ASP.NET, menggunakan SiteMapNode.Url properti sebagai kunci pencarian, jika disediakan untuk simpul (jika URL tidak disediakan, pengidentifikasi pelacakan dihasilkan untuk simpul). Oleh karena itu, objek apa pun SiteMapNode yang menyediakan URL dan digunakan oleh XmlSiteMapProvider harus memiliki URL unik dalam cakupan penyedia.

Kumpulan NameValueCollection atribut yang SiteMapNode dibuat dengan tersedia melalui Attributes properti , dan memudahkan untuk menerapkan atribut tambahan ke simpul peta situs dan memperluas kemampuannya tanpa mendapatkan kelas kustom untuk melakukannya.

Berikan kumpulan IList peran untuk memberikan serangkaian peran yang dapat melihat simpul saat SecurityTrimmingEnabled properti mengembalikan true. Untuk informasi selengkapnya, lihat SecurityTrimmingEnabled.

Penyedia XmlSiteMapProvider menggunakan SiteMapNode.Url properti sebagai kunci pencarian. Oleh karena itu, setiap SiteMapNode yang digunakan oleh XmlSiteMapProvider harus memiliki URL unik dalam cakupan penyedia.

Jika tidak ada title atau description disediakan, panggilan ke Title properti atau Description mengembalikan String.Empty bidang.

Untuk menentukan sumber daya secara terprogram untuk pelokalan, atur nilai implicitResourceKey ke nama unik yang akan digunakan untuk mengidentifikasi sumber daya yang dilokalkan untuk simpul atau diatur explicitResourceKeys ke NameValueCollection kumpulan name/value pasangan di mana name adalah properti node atau atribut kustom untuk melokalkan dan value berisi nilai pelokalan untuk properti node atau atribut kustom. Nilai yang dilokalkan kemudian dapat diatur dalam file .resx yang sesuai. Untuk informasi selengkapnya tentang cara melokalisasi Title, , Descriptiondan properti SiteMapNode kustom objek apa pun, lihat Cara: Melokalkan data Site-Map. Untuk persyaratan sintaks koleksi explicitResourceKeys , lihat NameValueCollection.

Lihat juga

Berlaku untuk