Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

SiteMapNode.Url-Eigenschaft

 

Veröffentlicht: Oktober 2016

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

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

public virtual string Url { get; set; }

Eigenschaftswert

Type: System.String

Die URL der Seite, die den Knoten darstellt. Die Standardeinstellung ist String.Empty.

Exception Condition
InvalidOperationException

Der Knoten ist schreibgeschützt.

Die XmlSiteMapProvider -Klasse, die die Map Provider Implementierung für ASP.NET ist, verwendet die SiteMapNode.Url -Eigenschaft als Suchschlüssel. Aus diesem Grund alle SiteMapNode -Objekt, das von verwendet wird, die XmlSiteMapProvider Klasse muss eine eindeutige URL im Gültigkeitsbereich des Anbieters verfügen.

Führende und nachfolgende Leerzeichen werden ignoriert.

Im folgenden Codebeispiel wird veranschaulicht, wie zum Festlegen der Url Eigenschaft eine SiteMapNode Objekt. Die AccessSiteMapProvider speichert seinen Stammknoten als eine Zeile, die keine parentnodeid definiert. Die Zeile wird zurückgegeben, mit einer OleDbDataReader -Objekt, und SiteMapNode Eigenschaften werden von den Werten in der Datenleser festgelegt.

Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die SiteMapProvider Klasse.

// 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
Verfügbar seit 2.0
Zurück zum Anfang
Anzeigen: