/ / Composite-Steuerelement ASP.NET blase nicht Ereignis, aber Vorlage tut - asp.net, Ereignis-bubbling, Composite-Steuerelemente, Artikel

Composite-Steuerelement ASP.NET blase nicht Ereignis, aber Vorlage tut - asp.net, Ereignis-bubbling, Composite-Steuerelemente, Artikel

Ich entwickle ein zusammengesetztes Steuerelement für einen ASP.NET-Anwendung und nur zufällig entwickelt das Steuerelement zunächst eine ITemplate verwenden, um seine untergeordneten Steuerelemente zu erstellen. Es wird eine Reihe von Schaltflächen innerhalb der untergeordneten Steuerelemente geben, die im Stammsteuerelement behandelt werden sollen. Ich verwende das OnBubbleEvent mit CommandName / CommandArgument-Eigenschaften auf den Schaltflächen, um alles zu verkabeln. Und alles hat super funktioniert ... bis ich die Templates in Controls geändert habe.

Wenn ich die Vorlage zu einem Steuerelement konvertierte und Controls.Add (new ChildControl ()) in meinem Stammsteuerelement anstelle von InstantiateIn (this) anwendete, funktionierte das Ereignis nicht mehr.

Irgendeine Idee warum?

(Alles und ich meine alles, sonst ist es dasselbe.)

Antworten:

0 für die Antwort № 1

Ihr Verbundsteuerelement muss implementiert werdenINamingContainer-Schnittstelle, um OnBubbleEvent-Aufrufe zu empfangen. Die CompositeControl-Klasse implementiert diese Schnittstelle bereits ... in Ihrem Fall funktioniert sie nicht wegen ITemplate, sondern weil Sie die Vererbung geändert haben CompositeControl zu Steuerung.

Sieh dir das an: http://msdn.microsoft.com/en-us/library/system.web.ui.control.onbubbleevent.aspx

Sie sagen es dort.