Bagikan melalui


SiteMapNode Kelas

Definisi

Mewakili simpul dalam struktur peta situs hierarkis seperti yang dijelaskan oleh SiteMap kelas dan kelas yang mengimplementasikan kelas abstrak SiteMapProvider .

public ref class SiteMapNode : ICloneable, System::Web::UI::IHierarchyData, System::Web::UI::INavigateUIData
public class SiteMapNode : ICloneable, System.Web.UI.IHierarchyData, System.Web.UI.INavigateUIData
type SiteMapNode = class
    interface ICloneable
    interface IHierarchyData
    interface INavigateUIData
Public Class SiteMapNode
Implements ICloneable, IHierarchyData, INavigateUIData
Warisan
SiteMapNode
Penerapan

Contoh

Bagian ini berisi dua contoh kode. Contoh kode pertama menunjukkan cara membuat kumpulan simpul peta situs baru dan menambahkan elemen ke dalamnya. Contoh kode kedua menunjukkan cara memuat data peta situs dari file teks.

Contoh kode berikut menunjukkan cara menggunakan SiteMapNodeCollection konstruktor untuk membuat koleksi baru SiteMapNodeCollection , lalu menambahkan elemen ke Add dalamnya dengan 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

Contoh kode berikut menunjukkan cara SimpleTextSiteMapProvider mengurai file teks yang berisi data peta situs dalam string yang dibatasi koma. Objek baru SiteMapNode ditambahkan ke koleksi pelacakan internal kelas untuk setiap baris yang dibaca dari file.

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

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

Objek SiteMapNode mewakili halaman situs Web dalam struktur peta situs. SiteMapNode objek dimuat oleh kelas statis SiteMap pada run time menggunakan satu atau beberapa penyedia peta situs untuk memuat data peta situs dari penyimpanan persisten ke dalam memori. SiteMapNode objek dibungkus oleh SiteMapNodeItem kelas untuk digunakan oleh kontrol server Web, seperti SiteMapPath kontrol.

Kelas ini SiteMapNode mencakup beberapa properti yang digunakan untuk menjelaskan satu halaman di situs Web, termasuk properti yang menjelaskan halaman, seperti Urlproperti , Title, dan Description . Url Sedangkan properti digunakan oleh XmlSiteMapProvider kelas , yang merupakan penyedia peta situs default untuk ASP.NET, sebagai kunci pencarian dalam koleksi internal yang digunakan penyedia untuk melacak simpul, SiteMapNode kelas mendukung properti dasar Key yang dapat digunakan oleh penyedia peta situs untuk melacak simpul. Selain itu, Url properti digunakan oleh kontrol navigasi untuk merender hyperlink ke halaman dalam struktur navigasi. Properti Title adalah nama yang mudah diingat untuk SiteMapNode, sering sama dengan judul HTML Formulir Web, dan digunakan oleh kontrol navigasi untuk merender label sederhana. Terakhir, kumpulan NameValueCollection atribut tambahan Attributes tersedia untuk penyedia peta situs yang menggunakan SiteMapNode objek, tetapi memerlukan properti tambahan yang tidak tersedia di kelas dasar SiteMapNode .

Konstruktor

SiteMapNode(SiteMapProvider, String)

Menginisialisasi instans SiteMapNode baru kelas , menggunakan yang ditentukan key untuk mengidentifikasi halaman yang diwakili node 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.

Properti

Attributes

Mendapatkan atau mengatur kumpulan atribut tambahan di luar properti yang ditik dengan kuat yang didefinisikan untuk SiteMapNode kelas .

ChildNodes

Mendapatkan atau mengatur semua simpul anak dari objek saat ini SiteMapNode dari penyedia terkait SiteMapProvider .

Description

Mendapatkan atau menetapkan deskripsi untuk SiteMapNode.

HasChildNodes

Mendapatkan nilai yang menunjukkan apakah saat ini SiteMapNode memiliki simpul anak.

Item[String]

Mendapatkan atau mengatur atribut kustom dari Attributes koleksi atau string sumber daya berdasarkan kunci yang ditentukan.

Key

Mendapatkan string yang mewakili kunci pencarian untuk simpul peta situs.

NextSibling

Mendapatkan simpul berikutnya SiteMapNode pada tingkat hierarkis yang sama dengan yang saat ini, relatif terhadap ParentNode properti (jika ada).

ParentNode

Mendapatkan atau mengatur SiteMapNode objek yang merupakan induk dari simpul saat ini.

PreviousSibling

Mendapatkan objek sebelumnya SiteMapNode pada tingkat yang sama dengan objek saat ini, relatif terhadap ParentNode objek (jika ada).

Provider

SiteMapProvider Mendapatkan penyedia tempat SiteMapNode objek dilacak.

ReadOnly

Mendapatkan atau menetapkan nilai yang menunjukkan apakah simpul peta situs dapat dimodifikasi.

ResourceKey

Mendapatkan atau mengatur kunci sumber daya yang digunakan untuk melokalisasi SiteMapNode.

Roles

Mendapatkan atau mengatur kumpulan peran yang terkait dengan SiteMapNode objek, yang digunakan selama pemangkasan keamanan.

RootNode

Mendapatkan simpul akar penyedia akar dalam hierarki penyedia peta situs. Jika tidak ada hierarki penyedia, RootNode properti mendapatkan simpul akar dari penyedia saat ini.

Title

Mendapatkan atau mengatur judul SiteMapNode objek.

Url

Mendapatkan atau mengatur URL halaman yang diwakili SiteMapNode objek.

Metode

Clone()

Membuat simpul baru yang merupakan salinan simpul saat ini.

Clone(Boolean)

Membuat salinan baru yang merupakan salinan simpul saat ini, secara opsional mengkloning semua simpul induk dan leluhur dari simpul saat ini.

Equals(Object)

Mendapatkan nilai yang menunjukkan apakah saat ini SiteMapNode identik dengan objek yang ditentukan.

GetAllNodes()

Mengambil kumpulan baca-saja dari semua SiteMapNode objek yang merupakan keturunan dari simpul panggilan, terlepas dari tingkat pemisahan.

GetDataSourceView(SiteMapDataSource, String)

SiteMapDataSourceView Mengambil objek yang terkait dengan simpul saat ini.

GetExplicitResourceString(String, String, Boolean)

Mengambil string yang dilokalkan berdasarkan SiteMapNode atribut untuk dilokalkan, string default untuk dikembalikan jika tidak ada sumber daya yang ditemukan, dan nilai Boolean yang menunjukkan apakah akan melemparkan pengecualian jika tidak ada sumber daya yang ditemukan.

GetHashCode()

Mengembalikan kode SiteMapNode hash objek.

GetHierarchicalDataSourceView()

SiteMapHierarchicalDataSourceView Mengambil objek yang terkait dengan simpul saat ini.

GetImplicitResourceString(String)

Mendapatkan string yang dilokalkan berdasarkan nama atribut dan ResourceKey properti yang ditentukan oleh SiteMapProvider yang SiteMapNode dilacak.

GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
IsAccessibleToUser(HttpContext)

Mendapatkan nilai yang menunjukkan apakah simpul peta situs yang ditentukan dapat dilihat oleh pengguna dalam konteks yang ditentukan.

IsDescendantOf(SiteMapNode)

Mendapatkan nilai yang menunjukkan apakah simpul peta situs saat ini adalah anak atau turunan langsung dari simpul yang ditentukan.

MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()

Mengonversi nilai instans SiteMapNode kelas ini ke representasi string yang setara.

Implementasi Antarmuka Eksplisit

ICloneable.Clone()

Membuat simpul baru yang merupakan salinan simpul saat ini. Untuk deskripsi anggota ini, lihat Clone().

IHierarchyData.GetChildren()

Mengambil item data turunan hierarkis dari item saat ini. Untuk deskripsi anggota ini, lihat GetChildren().

IHierarchyData.GetParent()

Mengambil induk hierarkis item saat ini. Untuk deskripsi anggota ini, lihat GetParent().

IHierarchyData.HasChildren

Mendapatkan nilai yang menunjukkan apakah objek saat ini SiteMapNode memiliki simpul anak. Untuk deskripsi anggota ini, lihat HasChildren.

IHierarchyData.Item

Mendapatkan item data hierarkis. Untuk deskripsi anggota ini, lihat Item.

IHierarchyData.Path

Mendapatkan jalur item data hierarkis. Untuk deskripsi anggota ini, lihat Path.

IHierarchyData.Type

Mendapatkan string yang mewakili nama jenis item data hierarkis. Untuk deskripsi anggota ini, lihat Type.

INavigateUIData.Description

Description Mendapatkan properti dari simpul peta situs. Untuk deskripsi anggota ini, lihat Description.

INavigateUIData.Name

Title Mendapatkan properti dari simpul peta situs. Untuk deskripsi anggota ini, lihat Name.

INavigateUIData.NavigateUrl

Url Mendapatkan properti dari simpul peta situs. Untuk deskripsi anggota ini, lihat NavigateUrl.

INavigateUIData.Value

Title Mendapatkan properti dari simpul peta situs. Untuk deskripsi anggota ini, lihat Value.

Berlaku untuk

Lihat juga