RaisePostBackEvent wird nicht ausgelöst
Frage
Ich habe ein benutzerdefiniertes Steuerelement, das IPostBackEventHandler implementiert.Einige clientseitige Ereignisse rufen __doPostBack(controlID, eventArgs) auf.
Die Steuerung ist in zwei verschiedenen Benutzersteuerelementen implementiert.In einem Steuerelement wird RaisePostBackEvent auf der Serverseite ausgelöst, wenn __doPostBack
aufgerufen wird.Im anderen Steuerelement wird RaisePostBackEvent nie aufgerufen.Ich habe das überprüft __EVENTTARGET
Parameter und es stimmt mit der ClientID des Steuerelements überein ...Wo sonst könnte ich nachsehen, um das Problem zu beheben?
Lösung
Es gibt viele Möglichkeiten, wie das scheitern kann.Fügen Sie das Steuerelement dynamisch im Code dahinter zur Seite hinzu?Wenn dies der Fall ist, kann Ihre UniqueID häufig deaktiviert sein – auch wenn die Client-IDs gleich sind.Haben Sie ein Codebeispiel, das veranschaulichen könnte, was Sie tun?
Andere Tipps
Überprüfen Sie noch einmal, ob es sich tatsächlich um eine Ableitung der UserControl-Klasse und nicht um die WebControl-Klasse handelt.
Dieser hat mich schon oft überrascht.Wenn Sie WebControl für das Styling verwenden müssen, müssen Sie Ihr Steuerelement INamingContainer implementieren lassen.(Keine Sorge, es ist eine Markierungsschnittstelle)
Also..
public class MyControl : UserControl {}
Oder
public class MyControl : WebControl, INamingContainer {}