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