(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

SiteMapNode.Url-Eigenschaft

Ruft die URL der Seite ab, die das SiteMapNode-Objekt darstellt, oder legt diese fest.

Namespace:  System.Web
Assembly:  System.Web (in System.Web.dll)

public virtual string Url { get; set; }

Eigenschaftswert

Typ: System.String
Die URL der Seite, die vom Knoten dargestellt wird. Der Standardwert ist String.Empty.

AusnahmeBedingung
InvalidOperationException

Der Knoten ist schreibgeschützt.

Die XmlSiteMapProvider-Klasse, die die Implementierung des Standardsiteübersichtsanbieters für ASP.NET darstellt, verwendet die SiteMapNode.Url-Eigenschaft als Suchschlüssel. Daher muss jedes SiteMapNode-Objekt, das von der XmlSiteMapProvider-Klasse verwendet wird, über eine eindeutige URL im Gültigkeitsbereich des Anbieters verfügen.

Führende und nachstehende Leerzeichen werden ignoriert.

Im folgenden Codebeispiel wird veranschaulicht, wie die Url-Eigenschaft eines SiteMapNode-Objekts festgelegt wird. Der AccessSiteMapProvider speichert seinen Stammknoten als eine Zeile, die keine definierte parentnodeid aufweist. Die Zeile wird mithilfe eines OleDbDataReader-Objekts zurückgegeben, und die SiteMapNode-Eigenschaften werden anhand der Werte im Datenreader festgelegt.

Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels, das für die SiteMapProvider-Klasse bereitgestellt wird.


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


.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft