2008-08-13 11 views
5

Ich habe ein benutzerdefiniertes Steuerelement, das IPostBackEventHandler implementiert. Einige clientseitige Ereignisse rufen __doPostBack (controlID, eventArgs) auf.RaisePostBackEvent nicht ausgelöst

Die Steuerung ist in zwei verschiedenen Benutzersteuerelementen implementiert. In einem Steuerelement wird RaisePostBackEvent auf der Serverseite ausgelöst, wenn __doPostBack aufgerufen wird. In dem anderen Steuerelement wird RaisePostBackEvent nie aufgerufen. Ich überprüfte den Parameter __EVENTTARGET und es stimmt mit der ClientID des Steuerelements überein ... wo sonst könnte ich nach Fehlern suchen?

Antwort

1

Es gibt viele Möglichkeiten, wie dies auseinander fallen kann. Fügen Sie das Steuerelement der Seite dynamisch im Code hinterher hinzu? Wenn so viele Male Ihre UniqueID aus sein kann - obwohl die Client-IDs gleich sind. Haben Sie ein Codebeispiel, das möglicherweise zeigt, was Sie tun?

+0

(Verschoben Kommentar) - Nun, ich fühle mich irgendwie dumm ... es war ein Einfaches Problem - Ich dachte, die UniqueID des Steuerelements passte zu __EVENTARGS, aber aufgrund einiger JavaScript-Ungereimtheiten meinerseits hatte es ein $, wo ein Unterstrich hätte sein sollen. Es war eine extrem lange UniqueID, die so leicht zu übersehen war. –

0

Überprüfen Sie, ob es sich tatsächlich um eine Ableitung der UserControl-Klasse handelt, nicht um eine WebControl-Klasse.
Dieser hat mich viele Male überrascht. Wenn Sie WebControl für das Styling verwenden müssen, müssen Sie Ihr Steuerelement INamingContainer implementieren. (Keine Sorge, es ist ein Marker-Schnittstelle)

So ..

public class MyControl : UserControl {} 

Oder

public class MyControl : WebControl, INamingContainer {}