RaisePostBackEvent ne se déclenche pas
Question
J'ai un contrôle personnalisé qui implémente IPostBackEventHandler.Certains événements côté client appellent __doPostBack(controlID, eventArgs).
Le contrôle est implémenté dans deux contrôles utilisateur différents.Dans un contrôle, RaisePostBackEvent est déclenché côté serveur lorsque __doPostBack
est invoqué.Dans l'autre contrôle, RaisePostBackEvent n'est jamais invoqué.j'ai vérifié le __EVENTTARGET
paramètre et il correspond au ClientID du contrôle...où puis-je chercher à résoudre ce problème ?
La solution
Il y a de nombreuses façons dont cela peut s'effondrer.Ajoutez-vous le contrôle à la page de manière dynamique dans le code derrière ?Si c'est le cas, votre UniqueID peut souvent être désactivé, même si les identifiants client sont égaux.Avez-vous un exemple de code qui pourrait démontrer ce que vous faites ?
Autres conseils
Vérifiez qu'il s'agit bien d'une dérivation de la classe UserControl, et non de celle de WebControl.
Celui-ci m’a surpris à plusieurs reprises.Si vous devez utiliser WebControl pour le style, vous devez laisser votre contrôle implémenter INamingContainer.(Ne vous inquiétez pas, c'est une interface de marqueur)
Donc..
public class MyControl : UserControl {}
Ou
public class MyControl : WebControl, INamingContainer {}