Chargement dynamique User Control / Evenement OnClick non intercepté

Résolu
ludo_it Messages postés 6 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 30 septembre 2008 - 30 sept. 2008 à 12:58
ludo_it Messages postés 6 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 30 septembre 2008 - 30 sept. 2008 à 15:26
Bonjour,

Je suis en train de créer une application web avec un catalogue de produit.
Je voudrais lister mes produit de la manière suivante :
Categorie 1
   - produit 1
   - produit 2
Catégorie 2
   - produit 1
   ......

J'utilise un repeater qui boucle sur mes catégories et à l'intèrieur de celui ci, j'ai mis un place holder pour charger dynamiquement un user control qui contiendrait la liste des produit de la catégorie courante.

Je passe une propriété categorie à mon user control, et celui ci affiche les produits grâce à un repeater.

Mon problème est le suivant, à l'intérieur du repeater qui liste les produits, j'ai mis un bouton mais lorsque je clique dessus, je ne rentre pas dans l'évenement onclick.
J'ai aussi essayé avec l'évenement itemcommand du repeater mais impossible d'intercepter cet évenement.

Voici le code, cela sera peut être plus parlant:

page.aspx

usercontrol.ascx

 
         
         

usercontrol.ascx.cs

protected void i_imgbtnAjouterPanier_Click(object sender, ImageClickEventArgs e)
 {
      //je n'arrive jamais dans ce code en cliquant sur le bouton
}

Que dois-je rajouter pour accéder à cet évènement?

Merci d'avance pour vos réponse.

2 réponses

ludo_it Messages postés 6 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 30 septembre 2008
30 sept. 2008 à 15:26
Ok , j'ai consulté les liens mais je n'ai pas trouvé la solution à mon problème.
Cependant, en changeant le repeater par un datalist, l'évènement sur le bouton est enfin détecté ... ouf...je n'ai pas eu à cassé toute la mécanique déjà mise en place.

Merci tout de même pour ta réponse.
3
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
30 sept. 2008 à 13:39
Bonjour,

comme je le repete souvent, il ne faut JAMAIS faire de controle dynamique à moins de connaitre parfaitement le cycle de vie d'une page ASP.net. La plupart du temps il y a moyen de s'en passer en utilisant un repeater/multiview/nested repeater/etc ....

Dans ton cas tu peux mettre un repeater dans un itemTemplate de ton repeater, puis lors de l'évenment itemdatabound de ton repeater parent tu bind le repeater enfant.

Pour mieux comprendre les controles dynamiques : http://blogs.developpeur.org/cyril/archive/2007/09/18/ajout-de-controle-dynamique-dans-une-page-asp-net.aspx

<hr />Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
Rejoignez-nous