SiteMapNode Oluşturucular

Tanım

sınıfının yeni bir örneğini SiteMapNode başlatır ve belirtilen SiteMapProvider nesneyle ilişkilendirir.

Aşırı Yüklemeler

SiteMapNode(SiteMapProvider, String)

Düğümün SiteMapNode temsil ettiği sayfayı ve düğümü yöneten site haritası sağlayıcısını tanımlamak için belirtilen key öğesini kullanarak sınıfının yeni bir örneğini başlatır.

SiteMapNode(SiteMapProvider, String, String)

Belirtilen URL'yi, düğümün temsil ettiği sayfayı tanımlamak için a'yı key ve düğümü yöneten site haritası sağlayıcısını kullanarak sınıfın yeni bir örneğini SiteMapNode başlatır.

SiteMapNode(SiteMapProvider, String, String, String)

Düğümün SiteMapNode temsil ettiği sayfayı, key bir başlığı ve düğümü yöneten site haritası sağlayıcısını tanımlamak için belirtilen URL'yi kullanarak sınıfının yeni bir örneğini başlatır.

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

Belirtilen URL'yi kullanarak sınıfın SiteMapNode yeni bir örneğini başlatır. key Düğümün temsil ettiği sayfayı, başlığı ve açıklamayı ve düğümü yöneten site haritası sağlayıcısını tanımlar.

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

Düğüm, URL, başlık, açıklama, roller, ek öznitelikler ve yerelleştirme için açık ve örtük kaynak anahtarlarını yöneten belirtilen site haritası sağlayıcısını kullanarak sınıfın yeni bir örneğini SiteMapNode başlatır.

SiteMapNode(SiteMapProvider, String)

Düğümün SiteMapNode temsil ettiği sayfayı ve düğümü yöneten site haritası sağlayıcısını tanımlamak için belirtilen key öğesini kullanarak sınıfının yeni bir örneğini başlatır.

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)

Parametreler

provider
SiteMapProvider

Düğümün SiteMapProvider ilişkilendirildiği.

key
String

Sağlayıcıya özgü arama anahtarı.

Özel durumlar

SiteMapProvider, null değeridir.

-veya-

key, null değeridir.

Açıklamalar

XmlSiteMapProvider ASP.NET için varsayılan SiteMapProvider sağlayıcı uygulaması olan sınıfı, düğüm için bir tane sağlanmışsa (URL sağlanmazsa, düğüm için bir izleme tanımlayıcısı oluşturulur) arama anahtarı olarak özelliğini kullanırSiteMapNode.Url. Bu nedenle, URL sağlayan ve tarafından XmlSiteMapProvider kullanılan tüm SiteMapNode denetimler, sağlayıcı kapsamında benzersiz bir URL'ye sahip olmalıdır.

Şunlara uygulanır

SiteMapNode(SiteMapProvider, String, String)

Belirtilen URL'yi, düğümün temsil ettiği sayfayı tanımlamak için a'yı key ve düğümü yöneten site haritası sağlayıcısını kullanarak sınıfın yeni bir örneğini SiteMapNode başlatır.

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)

Parametreler

provider
SiteMapProvider

Düğümün SiteMapProvider ilişkilendirildiği.

key
String

Sağlayıcıya özgü arama anahtarı.

url
String

Düğümün site içinde temsil ettiği sayfanın URL'si.

Özel durumlar

SiteMapProvider, null değeridir.

-veya-

key, null değeridir.

Örnekler

Aşağıdaki kod örneği, oluşturucuyu SiteMapNodeCollection kullanarak yeni SiteMapNodeCollection bir koleksiyon oluşturmayı ve ardından yöntemiyle Add öğe eklemeyi gösterir.

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

Açıklamalar

XmlSiteMapProvider ASP.NET için varsayılan SiteMapProvider sağlayıcı uygulaması olan sınıfı, düğüm için bir tane sağlanmışsa (URL sağlanmazsa, düğüm için bir izleme tanımlayıcısı oluşturulur) arama anahtarı olarak özelliğini kullanırSiteMapNode.Url. Bu nedenle, URL sağlayan ve tarafından XmlSiteMapProvider kullanılan herhangi SiteMapNode bir nesne, sağlayıcı kapsamında benzersiz bir URL'ye sahip olmalıdır.

Şunlara uygulanır

SiteMapNode(SiteMapProvider, String, String, String)

Düğümün SiteMapNode temsil ettiği sayfayı, key bir başlığı ve düğümü yöneten site haritası sağlayıcısını tanımlamak için belirtilen URL'yi kullanarak sınıfının yeni bir örneğini başlatır.

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)

Parametreler

provider
SiteMapProvider

Düğümün SiteMapProvider ilişkilendirildiği.

key
String

Sağlayıcıya özgü arama anahtarı.

url
String

Düğümün site içinde temsil ettiği sayfanın URL'si.

title
String

Düğüm için genellikle gezinti denetimleri tarafından görüntülenen bir etiket.

Özel durumlar

SiteMapProvider, null değeridir.

-veya-

key, null değeridir.

Örnekler

Aşağıdaki kod örneği, sınıfının yeni bir örneğini oluşturmak için oluşturucunun SiteMapNodeSiteMapNode nasıl kullanılacağını gösterir. Düğüm, Bir Microsoft Access veritabanı satırındaki değerlerle başlatılır.

Bu kod örneği, yöntemi için BuildSiteMap sağlanan daha büyük bir örneğin parçasıdır.

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

Açıklamalar

XmlSiteMapProvider ASP.NET için varsayılan SiteMapProvider sağlayıcı uygulaması olan sınıfı, düğüm için bir tane sağlanmışsa (URL sağlanmazsa, düğüm için bir izleme tanımlayıcısı oluşturulur) arama anahtarı olarak özelliğini kullanırSiteMapNode.Url. Bu nedenle, URL sağlayan ve tarafından XmlSiteMapProvider kullanılan herhangi SiteMapNode bir nesne, sağlayıcı kapsamında benzersiz bir URL'ye sahip olmalıdır.

Sağlanmadıysa title , özelliğine yapılan Title çağrılar alanı döndürür String.Empty .

Şunlara uygulanır

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

Belirtilen URL'yi kullanarak sınıfın SiteMapNode yeni bir örneğini başlatır. key Düğümün temsil ettiği sayfayı, başlığı ve açıklamayı ve düğümü yöneten site haritası sağlayıcısını tanımlar.

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)

Parametreler

provider
SiteMapProvider

Düğümün SiteMapProvider ilişkilendirildiği.

key
String

Sağlayıcıya özgü arama anahtarı.

url
String

Düğümün site içinde temsil ettiği sayfanın URL'si.

title
String

Düğüm için genellikle gezinti denetimleri tarafından görüntülenen bir etiket.

description
String

Düğümün temsil ettiği sayfanın açıklaması.

Özel durumlar

SiteMapProvider, null değeridir.

-veya-

key, null değeridir.

Örnekler

Aşağıdaki kod örneğinde, basit bir metin dosyasından SiteMapNode verileri ayrıştırarak bellekte site SiteMapNode haritası oluşturarak nesne oluşturmak için oluşturucunun nasıl kullanılacağı gösterilmektedir.

Bu kod örneği, soyut SiteMapProvider sınıf için sağlanan daha büyük bir örneğin bir parçasıdır.

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

Açıklamalar

XmlSiteMapProvider ASP.NET için varsayılan SiteMapProvider sağlayıcı uygulaması olan sınıfı, düğüm için bir tane sağlanmışsa (URL sağlanmazsa, düğüm için bir izleme tanımlayıcısı oluşturulur) arama anahtarı olarak özelliğini kullanırSiteMapNode.Url. Bu nedenle, URL sağlayan ve tarafından XmlSiteMapProvider kullanılan herhangi SiteMapNode bir nesne, sağlayıcı kapsamında benzersiz bir URL'ye sahip olmalıdır.

Hayır title veya description sağlandıysa, veya Description özelliklerine yapılan Title çağrılar bir String.Empty alan döndürür.

Ayrıca bkz.

Şunlara uygulanır

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

Düğüm, URL, başlık, açıklama, roller, ek öznitelikler ve yerelleştirme için açık ve örtük kaynak anahtarlarını yöneten belirtilen site haritası sağlayıcısını kullanarak sınıfın yeni bir örneğini SiteMapNode başlatır.

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)

Parametreler

provider
SiteMapProvider

Düğümün SiteMapProvider ilişkilendirildiği.

key
String

Sağlayıcıya özgü arama anahtarı.

url
String

Düğümün site içinde temsil ettiği sayfanın URL'si.

title
String

Düğüm için genellikle gezinti denetimleri tarafından görüntülenen bir etiket.

description
String

Düğümün temsil ettiği sayfanın açıklaması.

roles
IList

tarafından temsil edilen sayfayı görüntülemesine izin verilen rollerden SiteMapNodebiriIList.

attributes
NameValueCollection

NameValueCollection başlatmak SiteMapNodeiçin kullanılan ek özniteliklerden biri.

explicitResourceKeys
NameValueCollection

NameValueCollection Yerelleştirme için kullanılan açık kaynak anahtarlarından biri.

implicitResourceKey
String

Yerelleştirme için kullanılan örtük bir kaynak anahtarı.

Özel durumlar

SiteMapProvider, null değeridir.

-veya-

key, null değeridir.

Açıklamalar

XmlSiteMapProvider ASP.NET için varsayılan SiteMapProvider sağlayıcı uygulaması olan sınıfı, düğüm için bir tane sağlanmışsa (URL sağlanmazsa, düğüm için bir izleme tanımlayıcısı oluşturulur) arama anahtarı olarak özelliğini kullanırSiteMapNode.Url. Bu nedenle, URL sağlayan ve tarafından XmlSiteMapProvider kullanılan herhangi SiteMapNode bir nesne, sağlayıcı kapsamında benzersiz bir URL'ye sahip olmalıdır.

NameValueCollection ile oluşturulan öznitelik koleksiyonu SiteMapNode özelliği aracılığıyla Attributes kullanılabilir ve bir site haritası düğümüne ek öznitelikler uygulamayı ve bunu yapmak için özel bir sınıf türetmeden özelliklerini genişletmeyi kolaylaştırır.

özelliği döndürdüğünde SecurityTrimmingEnabledtruedüğümü görüntüleyebilen bir rol kümesi sağlamak için bir IList rol koleksiyonu sağlayın. Daha fazla bilgi için bkz. SecurityTrimmingEnabled.

Sağlayıcı, XmlSiteMapProvider arama anahtarı olarak özelliğini kullanır SiteMapNode.Url . Bu nedenle, tarafından XmlSiteMapProvider kullanılan herhangi SiteMapNode bir sağlayıcı kapsamında benzersiz bir URL'ye sahip olmalıdır.

Hayır title veya description sağlandıysa, veya Description özelliklerine yapılan Title çağrılar bir String.Empty alan döndürür.

Yerelleştirme kaynaklarını program aracılığıyla belirtmek için değerini düğüm için yerelleştirilmiş kaynakları tanımlamak için kullanılacak benzersiz bir ada ayarlayın implicitResourceKey ya da düğüm özelliği veya yerelleştirilecek özel öznitelik olan name ve value düğüm özelliği ya da özel özniteliği için yerelleştirme değerleri içeren bir NameValueCollection çiftler koleksiyonuna name/value ayarlayınexplicitResourceKeys. Yerelleştirilmiş değerler daha sonra uygun .resx dosyalarında ayarlanabilir. Bir nesnenin Title, Descriptionve özel özelliklerini SiteMapNode yerelleştirme hakkında daha fazla bilgi için bkz . Nasıl yapılır: Site-Map Verilerini Yerelleştirme. Koleksiyonun söz dizimi gereksinimleri için explicitResourceKeys bkz NameValueCollection. .

Ayrıca bkz.

Şunlara uygulanır