cs_zone51
Messages postés10Date d'inscriptionvendredi 27 septembre 2002StatutMembreDernière intervention25 février 2008
-
25 févr. 2008 à 13:17
cs_zone51
Messages postés10Date d'inscriptionvendredi 27 septembre 2002StatutMembreDernière intervention25 février 2008
-
25 févr. 2008 à 13:36
Bonjour,
Mon but est d'ajouter dynamiquement des contrôles dans une page suite à l'action d'un utilisateur.
Pour cela, j'ai créé un CompositeControl qui correspond à ce qui doit être ajouté dynamiquement dans ma page.
Voici el code du composite control :
[DefaultProperty("Text")]
[ToolboxData("<{0}:TestComposite runat=server></{0}:TestComposite>")]
public class TestComposite : CompositeControl
{
private Label l;
private TextBox t;
public DropDownList ddl;
l = new Label();
l.Text = DateTime.Now.ToString();
this.Controls.Add(l);
t = new TextBox();
t.Text = DateTime.Now.ToString();
this.Controls.Add(t);
}
}
Voici le code de ma page :
public partial class Test : System.Web.UI.Page
{
public int nb
{
get {
if (ViewState["nb"] == null)
{
ViewState["nb"] = 1;
}
return (int)ViewState["nb"];
}
set { ViewState["nb"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < nb; i++)
{
PlaceHolder1.Controls.Add(new TestComposite());
}
}
protected void Button2_Click(object sender, EventArgs e)
{
foreach (Control c in PlaceHolder1.Controls)
{
if (c.GetType() == typeof(TestComposite))
{
TextBox1.Text += ((TestComposite)c).ddl.SelectedValue;
}
}
}
}
Suite au PostBack, l'événément click est avant ma création de controles (logique dans le cycle de vie de la page).
Comment faire pour créer le bon nombre de composite control par rapport au nombre de demande utilisateur.