Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1806 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  [Résolu][ASPX][C#] Création dynamique d'un control et évènement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][ASPX][C#] Création dynamique d'un control et évènement

n°921569
tafkap
Posté le 13-12-2004 à 09:04:05  profilanswer
 

Bonjour la Cie,  :)  
 
j'ai le problème suivant :
 
Je dois créer dynamiquement des ImageButton qui seront affichés dans un tableau.  
Pour chaque bouton, j'associe une méthode générique sur l'évènement Click. Le problème est que quand je clique sur un dès bouton l'évènement OnClick ne se déclenche jamais.
 
J'ai retourné le problème dans tous les sens, rien n'y fait  :??:


Message édité par tafkap le 14-12-2004 à 00:05:36
mood
Publicité
Posté le 13-12-2004 à 09:04:05  profilanswer
 

n°921687
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-12-2004 à 12:06:29  profilanswer
 

t'as rattaché un delegate à chaque bouton ?

n°921854
tafkap
Posté le 13-12-2004 à 14:31:03  profilanswer
 

Salut,
 
je fais ça :
 
for (int i=0;i<=myTable.Rows.Count-1;i++)
{
  myIEventBtn mbutton = new myIEventBtn();
  mbutton.ID = "IDbtn_" + i.ToString();
  mbutton.EnableViewState = false;
  mbutton.ImageUrl = ".\\images\\icones\\supprimer2.gif";
  mbutton.Attributes["runat"] = "server";
  mbutton.BubbleClick += new EventHandler(mbutton_BubbleClick);
 mListButtons.Add(mbutton);
 }

n°922046
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-12-2004 à 17:08:53  profilanswer
 

c'est quoi cet évènement BubbleClick ?
 
ce genre de truc

Code :
  1. public void mbutton_Click(Object sender, System.EventArgs e)
  2. {
  3.    MessageBox.Show("Bouton :" + ((System.Windows.Forms.Button)sender).Tag.ToString());
  4. }
  5. (...)
  6. mbutton.Click += new EventHandler(mbutton_Click);


ne fonctionne pas ?

n°922071
tafkap
Posté le 13-12-2004 à 17:24:54  profilanswer
 

Hello ;)
 
tout d'abord merci pour ton aide.
 
En cherchant sur le Net j'ai trouvé la phrase qui m'intéresse :
 
"Note When you create dynamic controls on a Web Form, the controls must be created and added to the controls collection either in the OnInit or in the Page_Load events. Otherwise, the controls behave unexpectedly."
 
J'ai refait un test basic et ça fonctionne :  
 
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
 
namespace DynamicControl
{
 /// <summary>
 /// Description résumée de WebForm1.
 /// </summary>
 public class WebForm1 : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.Label Label1;
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   // Placer ici le code utilisateur pour initialiser la page
   for(int i=0;i<=1;i++)
   {
    ImageButton nImg = new ImageButton();
    nImg.ID = "ID" + i.ToString();
    nImg.Click +=new ImageClickEventHandler(nImg_Click);
 
    Control myControl = this.FindControl("Form1" );
    myControl.Controls.Add(nImg);
   }
  }
 
  #region Code généré par le Concepteur Web Form
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET.
   //
   InitializeComponent();
   base.OnInit(e);
  }
   
  /// <summary>
  /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
  /// le contenu de cette méthode avec l'éditeur de code.
  /// </summary>
  private void InitializeComponent()
  {    
   this.Load += new System.EventHandler(this.Page_Load);
 
  }
  #endregion
 
  private void nImg_Click(object sender, ImageClickEventArgs e)
  {
   ImageButton mysender = (ImageButton) sender;
   Label1.Text = mysender.ID;
  }
 }
}
 
 
Je dois donc me repencher sur la structure de ma page, mais il me semble que je faisais la création dynamique sur le OnInit, je regarde.


Message édité par tafkap le 13-12-2004 à 17:28:28
n°922418
tafkap
Posté le 14-12-2004 à 00:05:07  profilanswer
 

Finalement c'était bien cela, il faut que les controls server soient créés dans l'évènement Init ou Load.
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  [Résolu][ASPX][C#] Création dynamique d'un control et évènement

 

Sujets relatifs
Probleme de addActionListener [résolu][RESOLU] Apache - PHP5
[RESOLU]encore un probleme de script!Création requêtes sous Access et VBA
requette sql (mysql) [RESOLU][RESOLU] probleme de script d'upload.
[VBA Excel] [Résolu] Pb d'import de données txt dans excel avec VBA.[VBA Excel] Remplir 50 labels en une seule commande ? [résolu]
[VB6] Conversion .doc en .pdf [résolu] 
Plus de sujets relatifs à : [Résolu][ASPX][C#] Création dynamique d'un control et évènement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR