SiteMapNode Konstruktor
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menginisialisasi instans SiteMapNode baru kelas dan mengaitkannya dengan objek yang ditentukan SiteMapProvider .
Overload
SiteMapNode(SiteMapProvider, String) |
Menginisialisasi instans SiteMapNode baru kelas, menggunakan yang ditentukan |
SiteMapNode(SiteMapProvider, String, String) |
Menginisialisasi instans SiteMapNode baru kelas menggunakan URL yang ditentukan, |
SiteMapNode(SiteMapProvider, String, String, String) |
Menginisialisasi instans SiteMapNode baru kelas menggunakan URL yang ditentukan, |
SiteMapNode(SiteMapProvider, String, String, String, String) |
Menginisialisasi instans SiteMapNode baru kelas menggunakan URL yang ditentukan, |
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
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
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
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
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
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.