Question

Je souhaite utiliser des contrôles utilisateur "complexes" contenant plusieurs éléments de contrôle.C'est le même contrôle que je vais réutiliser dans la liste, et j'ai déjà un contrôle PlaceHolder pour cela.

Je peux ajouter le contrôle avec LoadControl (chemin d'accès à .ascx) - aucun problème.

Grâce à mes propriétés personnalisées, je peux également accéder/définir aux étiquettes intégrées, afin de pouvoir initialiser parfaitement chaque contrôle.

Mais lors de l'ajout de LinkButtons, j'ai des problèmes.

Lorsque je clique sur le bouton, j'obtiens un "soumettre" de la page rendant les contrôles ;mais l'événement de bouton du contrôle ne semble pas se déclencher (ou du moins PageLoad sur la page parent semble se déclencher en premier ?) - Je n'arrive pas à comprendre où va mon événement ou où chercher un nom/ID ou un paramètre pour cela bouton.

Comment se fait-il ou qu'est-ce que je fais de mal ici ?

J'ai maintenant créé un "faux bouton" en utilisant davantage une étiquette avec un "A HREF codé en dur" avec un identifiant dans l'URL, mais j'aimerais savoir quel événement je dois attraper et où ou comment initialiser le bouton, parce que je veux pouvoir utiliser les contrôles "ASP.NET par défaut" pour ces contrôles utilisateur (espérons-le sans trop de codage patchwork)...

Était-ce utile?

La solution

La seule raison pour laquelle les événements sont « perdus » est que vos contrôles ne sont pas recréés de telle manière qu'ASP.Net puisse associer l'événement au contrôle après la publication.Cela se fait grâce à l’utilisation de la propriété ID.

En d’autres termes, vous faites l’une des trois erreurs suivantes :

1) Vous attribuez différemment les ID de vos boutons de lien pendant la phase de création dans Init après la publication

2) Vous créez vos boutons de lien de manière dynamique à l'aide de code, mais vous le faites après la phase Init du cycle de vie de la page, afin que vos contrôles ne participent pas à ViewState.

3) Vous reliez à nouveau la source de données du contrôle parent contenant les boutons de lien à chaque publication.Utiliser if (!IsPostBack) pour éviter de le relier à chaque fois.

Sans voir votre code, je ne peux malheureusement rien donner de plus précis.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top