2009-05-21 3 views
0

Je souhaite utiliser des contrôles usuels "complexes" avec plus d'un élément 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.Ajout d'une liste de UserControls avec des boutons à un PlaceHolder - aucun événement?

Je peux ajouter le contrôle avec LoadControl (chemin vers .ascx) - pas de problème.

Grâce à mes propriétés personnalisées, je peux également accéder aux étiquettes incorporées, ce qui me permet d'initialiser parfaitement chaque contrôle. Mais lors de l'ajout de LinkButtons, je rencontre des problèmes/problèmes quand j'ajoute LinkButtons.

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

Comment se fait-il ou qu'est-ce que je fais de mal ici? J'ai fait un "faux bouton" maintenant en utilisant une étiquette plus avec un "HREF codé en dur" avec un ID dans l'URL, mais je voudrais apprendre quel événement je dois attraper et où ou comment init le bouton, parce que je veux pouvoir utiliser les contrôles "ASP.NET par défaut" pour ces contrôles usuels (sans trop de patchwork-codage) ...

+0

Veuillez publier le codebehind générant le LinkButton et lier son événement. – ichiban

+0

Merci pour votre temps, j'essayais de reproduire le problème dans un site d'exemple et maintenant il fonctionne comme prévu? !! ??! Je crois que cela a quelque chose à voir avec une fonctionnalité AJAX plutôt complexe que je cours sur la même page. Parce que sans tout cela le code fonctionne parfaitement. Comment procéder? est-ce que je supprime cette question ou est-ce que je la ferme ou quoi? – BerggreenDK

+0

Si vous rencontrez toujours le problème, reformulez/retapez la question et incluez la source. –

Répondre

1

La seule raison que les événements soient "perdus" est que votre Les contrôles ne sont pas recréés de telle sorte que ASP.Net peut associer l'événement au contrôle après la publication. Il le fait en utilisant la propriété ID.

En d'autres termes, vous faites l'une des trois mauvaises choses:

1) Vous déléguant l'ID de votre linkbuttons de manière différente pendant la phase de création Init après la postback

2) Vous Vous créez vos linkbuttons dynamiquement en utilisant du code, mais vous le faites après la phase Init du cycle de vie de la page, de sorte que vos contrôles ne participent pas à ViewState.

3) Vous réaffectez la source de données du contrôle parent contenant les linkbuttons à chaque publication. Utilisez if (!IsPostBack) pour empêcher la reliaison à chaque fois.

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

+0

Les contrôles sont construits parfaitement (visuellement) sur PageLoad première fois. C'est ce que je suis après. Mais l'usercontrol a des boutons et ce sont ces événements que je dois saisir quand on clique dessus. ... mais mon commentaire ci-dessus dit tout. Merci pour votre temps et désolé. – BerggreenDK

+0

Désolé pour le long délai, mais le projet a été annulé. J'ai enquêté cependant. Il semble que c'était l'AJAX.NET combiné avec Masterpages qui a fait le "tour". – BerggreenDK

Questions connexes