StaticSiteMapProvider Klass

Definition

Fungerar som en partiell implementering av den abstrakta klassen SiteMapProvider och fungerar som basklass för klassen XmlSiteMapProvider, som är standardprovidern för webbplatskartor i ASP.NET.

public ref class StaticSiteMapProvider abstract : System::Web::SiteMapProvider
public abstract class StaticSiteMapProvider : System.Web.SiteMapProvider
type StaticSiteMapProvider = class
    inherit SiteMapProvider
Public MustInherit Class StaticSiteMapProvider
Inherits SiteMapProvider
Arv
StaticSiteMapProvider
Härledda

Exempel

I följande kodexempel visas hur du utökar klassen StaticSiteMapProvider för att använda Microsoft Access som webbplatsöversiktsprovider. Klassen AccessSiteMapProvider är en webbplatsöversiktsprovider som endast stöder en enkel hierarki på en nivå. Tabellen som webbplatsöversiktsdata lagras i har följande struktur:

NODEID URL            NAME       PARENTNODEID
 ---------------------------------------------
 1      default.aspx   Default    <NULL>
 2      catalog.aspx   Catalog    1
 3      aboutus.aspx   Contact Us 1
...

Klassen AccessSiteMapProvider härleds från klassen StaticSiteMapProvider och hämtar informationen från en Microsoft Access databas med hjälp av grundläggande SQL-frågor och OleDbCommand och OleDbDataReader objekt.

#using <System.Data.dll>
#using <System.Transactions.dll>
#using <System.EnterpriseServices.dll>
#using <System.dll>
#using <System.Web.dll>
#using <System.Configuration.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
using namespace System::Configuration;
using namespace System::Data;
using namespace System::Data::OleDb;
using namespace System::Security::Permissions;
using namespace System::Web;

/// An extremely simple AccessSiteMapProvider that only supports a
/// site map node hierarchy 1 level deep.

[AspNetHostingPermission(SecurityAction::Demand,Level=AspNetHostingPermissionLevel::Minimal)]
public ref class AccessSiteMapProvider: public StaticSiteMapProvider
{
private:
   SiteMapNode ^ rootNode;
   OleDbConnection^ accessConnection;

   // This string is case sensitive.
   String^ AccessConnectionStringName;

public:
   // Implement a default constructor.
   AccessSiteMapProvider()
   {
      initialized = false;
      AccessConnectionStringName = "accessSiteMapConnectionString";
   }


private:

   // Some basic state to help track the initialization state of the provider.
   bool initialized;

public:

   property bool IsInitialized 
   {
      virtual bool get()
      {
         return initialized;
      }

   }

   property SiteMapNode ^ RootNode 
   {

      // Return the root node of the current site map.
      virtual SiteMapNode ^ get() override
      {
         SiteMapNode ^ temp = nullptr;
         temp = BuildSiteMap();
         return temp;
      }

   }

protected:

   virtual SiteMapNode ^ GetRootNodeCore() override
   {
      return RootNode;
   }


public:

   // Initialize is used to initialize the properties and any state that the
   // AccessProvider holds, but is not used to build the site map.
   // The site map is built when the BuildSiteMap method is called.
   virtual void Initialize( String^ name, NameValueCollection^ attributes ) override
   {
      if ( IsInitialized )
            return;

      StaticSiteMapProvider::Initialize( name, attributes );
      
      // Create and test the connection to the Microsoft Access database.
      // Retrieve the Value of the Access connection string from the
      // attributes NameValueCollection.
      String^ connectionString = attributes[ AccessConnectionStringName ];
      if ( nullptr == connectionString || connectionString->Length == 0 )
            throw gcnew Exception( "The connection string was not found." );
      else
            accessConnection = gcnew OleDbConnection( connectionString );

      initialized = true;
   }


protected:

   ///
   /// SiteMapProvider and StaticSiteMapProvider methods that this derived class must override.
   ///
   // Clean up any collections or other state that an instance of this may hold.
   virtual void Clear() override
   {
      System::Threading::Monitor::Enter( this );
      try
      {
         rootNode = nullptr;
         StaticSiteMapProvider::Clear();
      }
      finally
      {
         System::Threading::Monitor::Exit( this );
      }

   }


public:

   // Build an in-memory representation from persistent
   // storage, and return the root node of the site map.
   virtual SiteMapNode ^ BuildSiteMap() override
   {
      // Since the SiteMap class is static, make sure that it is
      // not modified while the site map is built.
      System::Threading::Monitor::Enter( this );
      try
      {
         
         // If there is no initialization, this method is being
         // called out of order.
         if (  !IsInitialized )
         {
            throw gcnew Exception( "BuildSiteMap called incorrectly." );
         }
         
         // If there is no root node, then there is no site map.
         if ( nullptr == rootNode )
         {
            
            // Start with a clean slate
            Clear();
            
            // Select the root node of the site map from Microsoft Access.
            int rootNodeId = -1;
            if ( accessConnection->State == ConnectionState::Closed )
               accessConnection->Open();
            
            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();
            
            // Select the child nodes of the root node.
            OleDbCommand^ childNodesCommand = gcnew OleDbCommand
               ("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid = ?", accessConnection);
            OleDbParameter^ rootParam = gcnew OleDbParameter( "parentid", OleDbType::Integer);
            rootParam->Value = rootNodeId;
            childNodesCommand->Parameters->Add( rootParam );
            OleDbDataReader^ childNodesReader = childNodesCommand->ExecuteReader();
            if ( childNodesReader->HasRows )
            {
               SiteMapNode ^ childNode = nullptr;
               while ( childNodesReader->Read() )
               {
                  childNode = gcnew SiteMapNode( this, 
                      System::Convert::ToString(childNodesReader->GetInt32( 0 )),
                     childNodesReader->GetString( 1 ),
                     childNodesReader->GetString( 2 ) 
                  );
                  // Use the SiteMapNode AddNode method to add
                  // the SiteMapNode to the ChildNodes collection.
                  AddNode( childNode, rootNode );
               }
            }
            childNodesReader->Close();
            accessConnection->Close();
         }
         return rootNode;
      }
      finally
      {
         System::Threading::Monitor::Exit( this );
      }

   }

};
namespace Samples.AspNet.CS.Controls {

    using System;
    using System.Collections;
    using System.Collections.Specialized;
    using System.Data;
    using System.Data.OleDb;
    using System.Security.Permissions;
    using System.Web;

    /// An extremely simple AccessSiteMapProvider that only supports a
    /// site map node hierarchy 1 level deep.
    [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)]
    public class AccessSiteMapProvider : StaticSiteMapProvider
    {
        private SiteMapNode rootNode =  null;
        private OleDbConnection accessConnection = null;

        // This string is case sensitive.
        private string AccessConnectionStringName = "accessSiteMapConnectionString";

        // Implement a default constructor.
        public AccessSiteMapProvider () { }

        // Some basic state to help track the initialization state of the provider.
        private bool initialized = false;
        public virtual bool IsInitialized {
            get {
                return initialized;
            }
        }
        // Return the root node of the current site map.
        public override SiteMapNode RootNode {
            get {
                SiteMapNode temp = null;
                temp = BuildSiteMap();
                return temp;
            }
        }
        protected override SiteMapNode GetRootNodeCore() {
            return RootNode;
        }
        // Initialize is used to initialize the properties and any state that the
        // AccessProvider holds, but is not used to build the site map.
        // The site map is built when the BuildSiteMap method is called.
        public override void Initialize(string name, NameValueCollection attributes) {
            if (IsInitialized)
                return;

            base.Initialize(name, attributes);

            // Create and test the connection to the Microsoft Access database.

            // Retrieve the Value of the Access connection string from the
            // attributes NameValueCollection.
            string connectionString = attributes[AccessConnectionStringName];

            if (null == connectionString || connectionString.Length == 0)
                throw new Exception ("The connection string was not found.");
            else
                accessConnection = new OleDbConnection(connectionString);

            initialized = true;
        }

        ///
        /// SiteMapProvider and StaticSiteMapProvider methods that this derived class must override.
        ///
        // Clean up any collections or other state that an instance of this may hold.
        protected override void Clear() {
            lock (this) {
                rootNode = null;
                base.Clear();
            }
        }

        // Build an in-memory representation from persistent
        // storage, and return the root node of the site map.
        public override SiteMapNode BuildSiteMap() {

            // Since the SiteMap class is static, make sure that it is
            // not modified while the site map is built.
            lock(this) {

                // If there is no initialization, this method is being
                // called out of order.
                if (!IsInitialized) {
                    throw new Exception("BuildSiteMap called incorrectly.");
                }

                // If there is no root node, then there is no site map.
                if (null == rootNode) {
                    // Start with a clean slate
                    Clear();

                    // Select the root node of the site map from Microsoft Access.
                    int rootNodeId = -1;

                    if (accessConnection.State == ConnectionState.Closed)
                        accessConnection.Open();
                    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();
                    // Select the child nodes of the root node.
                    OleDbCommand childNodesCommand =
                        new OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid = ?",
                                         accessConnection);
                    OleDbParameter rootParam = new OleDbParameter("parentid", OleDbType.Integer);
                    rootParam.Value = rootNodeId;
                    childNodesCommand.Parameters.Add(rootParam);

                    OleDbDataReader childNodesReader = childNodesCommand.ExecuteReader();

                    if (childNodesReader.HasRows) {

                        SiteMapNode childNode = null;
                        while(childNodesReader.Read()) {
                            childNode =  new SiteMapNode(this,
                                                         childNodesReader.GetInt32(0).ToString(),
                                                         childNodesReader.GetString(1),
                                                         childNodesReader.GetString(2));

                            // Use the SiteMapNode AddNode method to add
                            // the SiteMapNode to the ChildNodes collection.
                            AddNode(childNode, rootNode);
                        }
                    }

                    childNodesReader.Close();
                    accessConnection.Close();
                }
                return rootNode;
            }
        }
    }
}
Imports System.Collections
Imports System.Collections.Specialized
Imports System.Data
Imports System.Data.OleDb
Imports System.Security.Permissions
Imports System.Web

Namespace Samples.AspNet.VB.Controls
 
    ' An extremely simple AccessSiteMapProvider that only supports a
    ' site map node hierarchy one level deep.
    <AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
    Public Class AccessSiteMapProvider
        Inherits StaticSiteMapProvider

        Private aRootNode As SiteMapNode = Nothing
        Private accessConnection As OleDbConnection = Nothing

        ' This string is case sensitive.
        Private AccessConnectionStringName As String = "accessSiteMapConnectionString"

        ' Implement a default constructor.
        Public Sub New()
        End Sub

        ' Some basic state to help track the initialization state of the provider.
        Private initialized As Boolean = False

        Public Overridable ReadOnly Property IsInitialized() As Boolean
            Get
                Return initialized
            End Get
        End Property

        ' Return the root node of the current site map.
        Public Overrides ReadOnly Property RootNode() As SiteMapNode
            Get
                Return BuildSiteMap()
            End Get
        End Property

        Protected Overrides Function GetRootNodeCore() As SiteMapNode
            Return RootNode
        End Function

        ' Initialize is used to initialize the properties and any state that the
        ' AccessProvider holds, but is not used to build the site map.
        ' The site map is built when the BuildSiteMap method is called.
        Public Overrides Sub Initialize(ByVal name As String, ByVal attributes As NameValueCollection)
            If IsInitialized Then
                Return
            End If
            MyBase.Initialize(name, attributes)

            ' Create and test the connection to the Microsoft Access database.
            ' Retrieve the Value of the Access connection string from the
            ' attributes NameValueCollection.
            Dim connectionString As String = attributes(AccessConnectionStringName)

            If Nothing = connectionString OrElse connectionString.Length = 0 Then
                Throw New Exception("The connection string was not found.")
            Else
                accessConnection = New OleDbConnection(connectionString)
            End If
            initialized = True
        End Sub

        ' SiteMapProvider and StaticSiteMapProvider methods that this derived class must override.
        '
        ' Clean up any collections or other state that an instance of this may hold.
        Protected Overrides Sub Clear()
            SyncLock Me
                aRootNode = Nothing
                MyBase.Clear()
            End SyncLock
        End Sub

        ' Build an in-memory representation from persistent
        ' storage, and return the root node of the site map.
        Public Overrides Function BuildSiteMap() As SiteMapNode

            ' Since the SiteMap class is static, make sure that it is
            ' not modified while the site map is built.
            SyncLock Me

                ' If there is no initialization, this method is being
                ' called out of order.
                If Not IsInitialized Then
                    Throw New Exception("BuildSiteMap called incorrectly.")
                End If

                ' If there is no root node, then there is no site map.
                If aRootNode Is Nothing Then
                    ' Start with a clean slate
                    Clear()

                    ' Select the root node of the site map from Microsoft Access.
                    Dim rootNodeId As Integer = -1

                    If accessConnection.State = ConnectionState.Closed Then
                        accessConnection.Open()
                    End If
                    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()
                    ' Select the child nodes of the root node.
                    Dim childNodesCommand As New OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid = ?", accessConnection)
                    Dim rootParam As New OleDbParameter("parentid", OleDbType.Integer)
                    rootParam.Value = rootNodeId
                    childNodesCommand.Parameters.Add(rootParam)

                    Dim childNodesReader As OleDbDataReader = childNodesCommand.ExecuteReader()

                    If childNodesReader.HasRows Then

                        Dim childNode As SiteMapNode = Nothing
                        While childNodesReader.Read()
                            childNode = New SiteMapNode(Me, _
                            childNodesReader.GetInt32(0).ToString(), _
                            childNodesReader.GetString(1), _
                            childNodesReader.GetString(2))

                            ' Use the SiteMapNode AddNode method to add
                            ' the SiteMapNode to the ChildNodes collection.
                            AddNode(childNode, aRootNode)
                        End While
                    End If

                    childNodesReader.Close()
                    accessConnection.Close()
                End If
                Return aRootNode
            End SyncLock

        End Function 'BuildSiteMap

    End Class

End Namespace

Slutligen AccessSiteMapProvider konfigureras som standardprovider i följande Web.config fil.

<configuration>
  <system.web>
    <siteMap defaultProvider="AccessSiteMapProvider">
     <providers>
       <add
         name="AccessSiteMapProvider"
         type="Samples.AspNet.AccessSiteMapProvider,Samples.AspNet "
         accessSiteMapConnectionString="PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=sitemap.mdb "/>
     </providers>
    </siteMap>
  </system.web>
</configuration>

Kommentarer

Klassen StaticSiteMapProvider är en partiell implementering av den abstrakta SiteMapProvider klassen och tillhandahåller ytterligare två metoder: AddNode och RemoveNode, samt abstrakta BuildSiteMap och skyddade Clear metoder.

Klassen StaticSiteMapProvider har stöd för att skriva en webbplatskartprovider (till exempel en XmlSiteMapProvider) som översätter en webbplatskarta som lagras i beständig lagring till en som lagras i minnet. Klassen StaticSiteMapProvider tillhandahåller grundläggande implementeringar för lagring och hämtning av SiteMapNode objekt.

Klasserna SiteMapProvider och StaticSiteMapProvider stöder konceptet med en platskartas providerhierarki, där en webbplatsöversiktsprovider kan ha en hierarkisk relation med andra platskartasproviders. Det här mönstret implementeras med RootProvider egenskaperna och ParentProvider .

Klassen StaticSiteMapProvider lagrar sina SiteMapNode objekt i hash-tabeller och använder SiteMapNode.Url internt egenskapen för sidorna, som representeras av platsmappningsnoder, som nycklar. (Om en platsöversiktsnod inte anger någon URL spåras den med hjälp av en automatiskt genererad unik nyckel.) Därför kan du inte ha platsmappningsnoder där en platsöversiktsnod med samma URL används mer än en gång. Om du till exempel försöker läsa in platsmappningsnoden som illustreras i följande kodexempel med klassen XmlSiteMapProvider, som är standard ASP.NET webbplatsöversiktsprovider, eller någon webbplatsöversiktsprovider som härleds från klassen StaticSiteMapProvider fungerar inte eftersom AboutUs.aspx-sidan används mer än en gång.

<sitemap>
  <sitemapnode title="Home" description="Home" url="default.aspx" >
    <sitemapnode title="Catalog" description="Our catalog" url="catalog.aspx"/>
    <sitemapnode title="About Us" description="All about our company" url="aboutus.aspx"/>
    <sitemapnode title="Driving Directions" description="Directions to our store" url="aboutus.aspx"/>
  </sitemapnode>
</sitemap>

Om du utökar StaticSiteMapProvider klassen är GetRootNodeCorede tre viktigaste metoderna metoderna , Initializeoch BuildSiteMap . Metoderna Clear och FindSiteMapNode har standardimplementeringar som räcker för de flesta implementeringar av en anpassad webbplatsöversiktsprovider.

Metoden Initialize anropas för att initiera härledda webbplatsöversiktsproviders, inklusive alla resurser som krävs för att läsa in platsöversiktsdata, men den försöker skapa platskartnoden i minnet. Om din härledda klass använder filer för att lagra webbplatsöversiktsdata kan alla filinitieringar utföras här. Om platsöversiktsnoden använder någon annan typ av datalager, till exempel en relationsdatabas, kan initiering av en anslutning utföras här. Ytterligare attribut, till exempel filnamn eller anslutningssträngar som placeras på platskartans providerelement i konfigurationen, bearbetas av ASP.NET-konfigurationssystemet och skickas till metoden Initialize med parametern attributes.

Metoden BuildSiteMap måste åsidosättas av alla klasser som härleds från StaticSiteMapProvider klassen och anropas för att läsa in platsmappningsnoden från beständig lagring och konvertera den till en intern representation. Metoden BuildSiteMap anropas internt i många av standardmedlemimplementeringarna för klasserna StaticSiteMapProvider och XmlSiteMapProvider . Om du implementerar en egen webbplatsöversiktsprovider kontrollerar du att databehandlingen för webbplatsöversikten sker en gång och efterföljande anrop till BuildSiteMap metoden returneras omedelbart, om platskartans information redan har lästs in. När du implementerar BuildSiteMap metoden ser du till att den är trådsäker eftersom flera samtidiga sidbegäranden indirekt kan resultera i flera anrop för att läsa in webbplatsöversiktsinformation. Webbplatsöversiktsinfrastrukturen stöder visning av webbplatskartainformation baserat på användarens roll. Beroende på vilken Roles egenskap som stöds av de enskilda SiteMapNode objekten kan det finnas en annan navigeringsstruktur för olika användare. Standardimplementeringarna för platskartans nodhämtningsmedlemmar i StaticSiteMapProvider klassen utför säkerhetstrimning automatiskt genom att anropa IsAccessibleToUser metoden.

Metoderna AddNode, Clear och RemoveNode manipulerar de interna samlingar som används för att spåra platsmappningsnoder på ett trådsäkert sätt.

Anteckningar till implementerare

När du ärver från StaticSiteMapProvider klassen måste du åsidosätta följande medlem: BuildSiteMap().

Konstruktorer

Name Description
StaticSiteMapProvider()

Initierar en ny instans av StaticSiteMapProvider klassen.

Egenskaper

Name Description
CurrentNode

Hämtar objektet SiteMapNode som representerar den begärda sidan.

(Ärvd från SiteMapProvider)
Description

Hämtar en kort, vänlig beskrivning som är lämplig för visning i administrativa verktyg eller andra användargränssnitt (UIs).

(Ärvd från ProviderBase)
EnableLocalization

Hämtar eller anger ett booleskt värde som anger om lokaliserade värden SiteMapNode för attribut returneras.

(Ärvd från SiteMapProvider)
Name

Hämtar det eget namn som används för att referera till providern under konfigurationen.

(Ärvd från ProviderBase)
ParentProvider

Hämtar eller anger det överordnade SiteMapProvider objektet för den aktuella providern.

(Ärvd från SiteMapProvider)
ResourceKey

Hämta eller ange resursnyckeln som används för att lokalisera SiteMapNode attribut.

(Ärvd från SiteMapProvider)
RootNode

Hämtar rotobjektet SiteMapNode för platsmappningsdata som den aktuella providern representerar.

(Ärvd från SiteMapProvider)
RootProvider

Hämtar rotobjektet SiteMapProvider i den aktuella providerhierarkin.

(Ärvd från SiteMapProvider)
SecurityTrimmingEnabled

Hämtar ett booleskt värde som anger om en webbplatsöversiktsprovider filtrerar platsmappningsnoder baserat på en användares roll.

(Ärvd från SiteMapProvider)

Metoder

Name Description
AddNode(SiteMapNode, SiteMapNode)

Lägger till en SiteMapNode till de samlingar som underhålls av webbplatsöversiktsprovidern och upprättar en överordnad/underordnad relation mellan objekten SiteMapNode .

AddNode(SiteMapNode)

Lägger till ett SiteMapNode objekt i nodsamlingen som underhålls av webbplatsöversiktsprovidern.

(Ärvd från SiteMapProvider)
BuildSiteMap()

När den åsidosättas i en härledd klass läser du in webbplatsöversiktsinformationen från beständig lagring och skapar den i minnet.

Clear()

Tar bort alla element i samlingar med underordnade och överordnade platsmappningsnoder som StaticSiteMapProvider spåras som en del av dess tillstånd.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
FindSiteMapNode(HttpContext)

Hämtar ett SiteMapNode objekt som representerar den begärda sidan med det angivna HttpContext objektet.

(Ärvd från SiteMapProvider)
FindSiteMapNode(String)

Hämtar ett SiteMapNode objekt som representerar sidan på den angivna URL:en.

FindSiteMapNodeFromKey(String)

Hämtar ett SiteMapNode objekt baserat på en angiven nyckel.

GetChildNodes(SiteMapNode)

Hämtar de underordnade platsmappningsnoderna för ett specifikt SiteMapNode objekt.

GetCurrentNodeAndHintAncestorNodes(Int32)

Tillhandahåller en optimerad uppslagsmetod för webbplatsöversiktsproviders när du hämtar noden för den aktuella sidan och hämtar de överordnade och överordnade platsmappningsnoderna för den aktuella sidan.

(Ärvd från SiteMapProvider)
GetCurrentNodeAndHintNeighborhoodNodes(Int32, Int32)

Tillhandahåller en optimerad uppslagsmetod för webbplatskartproviders när du hämtar noden för den aktuella sidan och hämtar platsmappningsnoderna i närheten av den aktuella noden.

(Ärvd från SiteMapProvider)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetParentNode(SiteMapNode)

Hämtar den överordnade platsmappningsnoden för ett specifikt SiteMapNode objekt.

GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(Int32, Int32)

Tillhandahåller en optimerad uppslagsmetod för webbplatskartproviders när du hämtar en överordnad nod för den aktuella begärda sidan och hämtar de underordnade noderna för den överordnade noden.

(Ärvd från SiteMapProvider)
GetParentNodeRelativeToNodeAndHintDownFromParent(SiteMapNode, Int32, Int32)

Tillhandahåller en optimerad uppslagsmetod för platskartasproviders när du hämtar en överordnad nod för det angivna SiteMapNode objektet och hämtar dess underordnade noder.

(Ärvd från SiteMapProvider)
GetRootNodeCore()

När den åsidosätts i en härledd klass hämtar den rotnoden för alla noder som för närvarande hanteras av den aktuella providern.

(Ärvd från SiteMapProvider)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
HintAncestorNodes(SiteMapNode, Int32)

Tillhandahåller en metod som webbplatsöversiktsproviders kan åsidosätta för att utföra en optimerad hämtning av en eller flera nivåer av överordnade och överordnade noder i förhållande till det angivna SiteMapNode objektet.

(Ärvd från SiteMapProvider)
HintNeighborhoodNodes(SiteMapNode, Int32, Int32)

Tillhandahåller en metod som webbplatsöversiktsleverantörer kan åsidosätta för att utföra en optimerad hämtning av noder som finns i närheten av den angivna noden.

(Ärvd från SiteMapProvider)
Initialize(String, NameValueCollection)

Initierar implementeringen SiteMapProvider , inklusive alla resurser som behövs för att läsa in webbplatsöversiktsdata från beständig lagring.

(Ärvd från SiteMapProvider)
IsAccessibleToUser(HttpContext, SiteMapNode)

Hämtar ett booleskt värde som anger om det angivna SiteMapNode objektet kan visas av användaren i den angivna kontexten.

(Ärvd från SiteMapProvider)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
RemoveNode(SiteMapNode)

Tar bort det angivna SiteMapNode objektet från alla webbplatsöversiktsnodsamlingar som spåras av webbplatsöversiktsprovidern.

ResolveSiteMapNode(HttpContext)

Genererar händelsen SiteMapResolve .

(Ärvd från SiteMapProvider)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Händelser

Name Description
SiteMapResolve

Inträffar när egenskapen CurrentNode anropas.

(Ärvd från SiteMapProvider)

Gäller för

Se även