SiteMapPath.OnItemCreated(SiteMapNodeItemEventArgs) Methode

Definition

Löst das ItemCreated Ereignis des Steuerelements SiteMapPath aus.

protected:
 virtual void OnItemCreated(System::Web::UI::WebControls::SiteMapNodeItemEventArgs ^ e);
protected virtual void OnItemCreated(System.Web.UI.WebControls.SiteMapNodeItemEventArgs e);
abstract member OnItemCreated : System.Web.UI.WebControls.SiteMapNodeItemEventArgs -> unit
override this.OnItemCreated : System.Web.UI.WebControls.SiteMapNodeItemEventArgs -> unit
Protected Overridable Sub OnItemCreated (e As SiteMapNodeItemEventArgs)

Parameter

e
SiteMapNodeItemEventArgs

Ein SiteMapNodeItemEventArgs Objekt, das Ereignisdaten enthält.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die Methode nach dem OnItemCreated Erstellen einer SiteMapNodeItem innerhalb der InitializeItem Methode aufgerufen wird. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die SiteMapPath Klasse bereitgestellt wird.

private void AddDropDownListAfterCurrentNode(SiteMapNodeItem item) {

    SiteMapNodeCollection childNodes = item.SiteMapNode.ChildNodes;

    // Only do this work if there are child nodes.
    if (childNodes != null) {

        // Add another PathSeparator after the CurrentNode.
        SiteMapNodeItem finalSeparator =
            new SiteMapNodeItem(item.ItemIndex,
                                SiteMapNodeItemType.PathSeparator);

        SiteMapNodeItemEventArgs eventArgs =
            new SiteMapNodeItemEventArgs(finalSeparator);

        InitializeItem(finalSeparator);
        // Call OnItemCreated every time a SiteMapNodeItem is
        // created and initialized.
        OnItemCreated(eventArgs);

        // The pathSeparator does not bind to any SiteMapNode, so
        // do not call DataBind on the SiteMapNodeItem.
        item.Controls.Add(finalSeparator);

        // Create a DropDownList and populate it with the children of the
        // CurrentNode. There are no styles or templates that are applied
        // to the DropDownList control. If OnSelectedIndexChanged is raised,
        // the event handler redirects to the page selected.
        // The CurrentNode has child nodes.
        DropDownList ddList = new DropDownList();
        ddList.AutoPostBack = true;

        ddList.SelectedIndexChanged += new EventHandler(this.DropDownNavPathEventHandler);

        // Add a ListItem to the DropDownList for every node in the
        // SiteMapNodes collection.
        foreach (SiteMapNode node in childNodes) {
            ddList.Items.Add(new ListItem(node.Title, node.Url));
        }

        item.Controls.Add(ddList);
    }
}
Private Sub AddDropDownListAfterCurrentNode(item As SiteMapNodeItem)

   Dim childNodes As SiteMapNodeCollection = item.SiteMapNode.ChildNodes

   ' Only do this work if there are child nodes.
   If Not (childNodes Is Nothing) Then

      ' Add another PathSeparator after the CurrentNode.
      Dim finalSeparator As New SiteMapNodeItem(item.ItemIndex, SiteMapNodeItemType.PathSeparator)

      Dim eventArgs As New SiteMapNodeItemEventArgs(finalSeparator)

      InitializeItem(finalSeparator)
      ' Call OnItemCreated every time a SiteMapNodeItem is
      ' created and initialized.
      OnItemCreated(eventArgs)

      ' The pathSeparator does not bind to any SiteMapNode, so
      ' do not call DataBind on the SiteMapNodeItem.
      item.Controls.Add(finalSeparator)

      ' Create a DropDownList and populate it with the children of the
      ' CurrentNode. There are no styles or templates that are applied
      ' to the DropDownList control. If OnSelectedIndexChanged is raised,
      ' the event handler redirects to the page selected.
      ' The CurrentNode has child nodes.
      Dim ddList As New DropDownList()
      ddList.AutoPostBack = True

      AddHandler ddList.SelectedIndexChanged, AddressOf Me.DropDownNavPathEventHandler

      ' Add a ListItem to the DropDownList for every node in the
      ' SiteMapNodes collection.
      Dim node As SiteMapNode
      For Each node In  childNodes
         ddList.Items.Add(New ListItem(node.Title, node.Url))
      Next node

      item.Controls.Add(ddList)
   End If
End Sub

Hinweise

Das ItemCreated Ereignis wird ausgelöst, nachdem das SiteMapPath Steuerelement ein SiteMapNodeItemWebserversteuerelement erstellt hat, das ein SiteMapNodeWebserver-Steuerelement darstellt und es einem SiteMapNodeordnet. Die OnItemCreated Methode wird aufgerufen, bevor das erstellte Knotenelement an seine Daten gebunden ist. Auf diese Weise können Sie eine Ereignisbehandlungsmethode bereitstellen, die bei jeder Erstellung einer benutzerdefinierten Routine eine SiteMapNodeItem benutzerdefinierte Routine ausführt.

Das Auslösen eines Ereignisses ruft den Ereignishandler über einen Delegaten auf. Weitere Informationen finden Sie unter Behandeln und Auslösen von Ereignissen.

Mit der OnItemCreated Methode können abgeleitete Klassen auch das Ereignis behandeln, ohne einen Delegaten anzufügen. Dies ist die bevorzugte Technik für die Behandlung des Ereignisses in einer abgeleiteten Klasse.

Hinweise für Vererber

Achten Sie beim Überschreiben OnItemCreated(SiteMapNodeItemEventArgs) in einer abgeleiteten Klasse darauf, die Methode der Basisklasse OnItemCreated(SiteMapNodeItemEventArgs) aufzurufen, damit registrierte Stellvertretungen das Ereignis empfangen.

Gilt für:

Weitere Informationen