begin process at 2012 05 28 03:24:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

Autre

 > 

Perte de l'évènement de mon ImageButton si clic sur Précédent


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Perte de l'évènement de mon ImageButton si clic sur Précédent

mercredi 29 septembre 2010 à 16:26:48 | Perte de l'évènement de mon ImageButton si clic sur Précédent

ravage117

Bonjour,

J'ai une page qui se déroule en 3 étapes.
La 1ere, le client choisi son entrée parmi la liste des entrées, la 2eme son plat et enfin la 3eme son dessert.
Pour gérer ces 3 étapes, je crée plusieurs ImageButton correspondant à mes produits de ma 1ere étape dynamiquement depuis mon code C# à qui je lui lie un ID, une imageURL et un évènement (commun à tous). Et enfin je lie mon Imagebutton à mon panel
Code C# :
monPanel.Controls.Clear();
foreach (Produits prod in lstProduit)
{
    ImageButton imgBtn = new ImageButton();
    imgBtn.ID = prod.idProduit;
    imgBtn.ImageUrl = urlFamImage;
    imgBtn.ToolTip = prod.nom;
    imgBtn.Click += new ImageClickEventHandler(imgBtn_Click);

    monPanel.Controls.Add(imgBtn);
}


et dans mon évènement imgBtn_Click(), je récupère l'ID de mon ImageButton pour faire tout mon traitement et je termine par repeindre complétement ma page dynamiquement (dont les ImageButton) en passant à l'étape suivante (numéro d'étape passé en variable session).

Jusqu'ici tout marche nikel.

Cependant, si l'utilisateur se trouve à l'étape 2 ou 3 et clic sur le bouton Précédent du navigateur, le navigateur me réaffiche ma page comme elle était à l'étape précédente, seulement mes ImageButton on perdu leurs évènements! Et du coup, si l'utilisateur clic dessus, on va repasser dans le page_load mais pas dans son évènement et ca va me faire n'importe quoi.

J'ai remarqué que les ImageButton créé en dur dans le .aspx ne perdent pas leurs évènements en cas de clic sur le bouton Précédent du navigateur
ex:
Code ASP.NET :
<asp:ImageButton ID="imgBtn" runat="server" OnClick="imgBtn_Click" ImageUrl="maPhoto.jpg"/>

Mais je suis obligé de les créer dynamiquement dans mon cas.

Si quelqu'un sait comment faire garder l'évènement à mon ImageButton, ou empêcher l'utilisateur de cliquer sur le bouton Précédent sans javascript loufoque (car destiné aux entreprise qui désactivent le javascript de leurs navigateurs!)...

Merci d'avance
jeudi 30 septembre 2010 à 00:37:20 | Re : Perte de l'évènement de mon ImageButton si clic sur Précédent

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonjour,

Comme je le repete souvent, les controles dynamiques sont la premiere cause de problème avec ASP.net. Dans ce cas, je pense que l'utilisation d'un listview/repeater permet de contourner le problème.

Code ASP.NET :
<asp:repeater id="rptPouet" OnItemCommand="rptPouet_ItemCommand">
  <ItemTemplate>
    <asp:imageButton runat="server" commandArgument="<%#((YYY)Container.DataItem).XXX%>" CommandName="DoPouet" />
  </ItemTemplate>
</asp:repeater>


Code C# :
  void BindData()
  {
     this.rptPouet.DataSource = products; 
     this.rptPouet.DataBind(); 
  }

  protected void rptPouet_ItemCommand(Object sender, RepeaterItemCommand e)
  {
     // ...
  }

____________________________________________
Cyril - MVP ASP.net - webSite
jeudi 30 septembre 2010 à 09:21:42 | Re : Perte de l'évènement de mon ImageButton si clic sur Précédent

ravage117

Merci pour le tuyau.

J'ai résolu mon problème autrement mais je garde ta solution sous le coude.

Perso pour chaque page, je stock mon numéro d'étape dans une variable de session et également dans un textbox caché.
Si un utilisateur clic sur précédent, ma variable de session reste la même, alors que la valeur du textbox revient à l'état précédent.
Du coup si l'utilisateur clic de nouveau sur un ImageButton depuis une page précédente, j'effectue une comparaison entre ma variable de session et mon textbox dans la page_load. Si ceux-ci sont différent, j'effectue les modifications nécessaires. Tout fonctionne comme ca.

Encore merci


Cette discussion est classée dans : clic, évènement, précédent, imagebutton, imgbtn


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec évènement [ par Byrong ] Bonjour voila j'ai un bouton, et quand je clic deux fois dans la case blanche à coté de clic dans évènement, sur mon autre pc, il prépare l'évènement Gridview [ par Byrong ] Bonjour j'ai un formulaire avec plusieurs zones de texte et j'aimerais que ces zones de texte s'affichent dans le gridview lors d'un clic sur le bout event et bouton [ par Byrong ] Bonjour Je m explique, j ai un textbox, un bouton et une dropdownlist. Quand je clique sur le bouton, il vérifie si le textbox est vide ou non. Si i TreeView, clic sur un noeud. [ par Sbt ] Bonjour à tous, Dans une de mes pages, j'ai un treeview. Lorsque l'on clique sur un noeud, un popup s'ouvre avec les infos du noeud. La fonction utili Comment réactiver le clic droit pour un formulaire [ par igor_simar ] Bonjour, dans ma page default j'ai mis ce script afin d'empêcher tout clics sur mon site : <!-- Disable function disableselect(e){ return Utiliser un recordset lors d'un évènement [ par Leilila ] Bonjour, je voudrais savoir si il est possible de réutiliser un recordset lors d'un évènement OnChange() , le code est en vascript.J'aurais besoin de filtrer pageASP N°2 par clic sur lien dans pageASP N°1 [ par cydut ] je souhaite afficher une page asp avec base de données access FILTREE sur clic d'une autre page asp (le lien = le choix bref le filtre à prendre en co évènement et liste déroulante [ par Jula ] Salut à tous,je voudrais que lorsque l'utilisateur choisi un item de ma liste déroulante, une nouvelle page s'affiche.voici mon code pour que vous com evenement précédent du browser [ par xscarp ] Connaisez vous un moyen d'écrire du code qui sera exécuté quand l'utilisateur cliquera sur le bouton précédent du navigateur web?Merci d'avance page précédente [ par Jula ] coucou tout le monde!est-il possible de "bloquer" les boutons du navigateur pour interdire les retour à la prage précédente ou suivanteparce que j'uti


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales