begin process at 2012 05 27 20:30:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

WebControl

 > 

Composite Control ajoutés dynamiquement


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

Composite Control ajoutés dynamiquement

lundi 25 février 2008 à 13:17:54 | Composite Control ajoutés dynamiquement

zone51

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;

        protected override void CreateChildControls()
        {
            createChild();   
        }

        private void createChild()
        {
            ddl = new DropDownList();
            ddl.Items.Add(new ListItem("Test 1", "1"));
            ddl.Items.Add(new ListItem("Test 2", "2"));
            ddl.Items.Add(new ListItem("Test 3", "3"));
            this.Controls.Add(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 Button1_Click(object sender, EventArgs e)
        {
            nb++;
        }

        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.

Merci de votre aide

lundi 25 février 2008 à 13:36:47 | Re : Composite Control ajoutés dynamiquement

zone51

Réponse acceptée !
J'ai un trouvé un moyen mais je suis sûr que l'on peut faire mieux.

Dans la méthode Button1_Click j'ai ajouté la ligne suivante PlaceHolder1.Controls.Add(new TestComposite());

Dans ce cas tout marche avec le PostBack, je suis prenneur des autres façon de faire ce que j'ai fait.

Merci


Cette discussion est classée dans : page, control, add, ddl, nb


Répondre à ce message

Sujets en rapport avec ce message

Inclure une fonction dans une page [ par Special_Fx ] Salut,Je veux utiliser une fonction trouvée sur le site pour ajouter un Zéro devant des nbs<10, il se trouve que cette valeur est issue dans champs d' control activeX et Asp [ par tgenty ] Bonjour,Je cherche à appeller des méthodes et recupérer des attributs d'un controle activeX insérer dans une page ASP.J'ai donc utilisé la balise OBJE réaliser une page ASP .net dynamiquement créée [ par Dgill ] Je voudrais pouvoir créer une nouvelle page aspx générer par du code C#.j'aiemrais que cette nouvelle page soit completement créée de A-Z et affiché d evenement + user control + code behind = ???? [ par jesusonline ] bonjour j'ai une page default.aspx et dans cette page j'appelle un user control (ascx) dans cet user control j'ai un bouton et j'aimerais bien que qd User Control [ par Kalypswoo ] J'ai un user control en haut de ma page. Lorsque je met un datagrid ou autre chose dans ma page, lorsque que je lance l'appli dans ie, les éléments de RegisterClientScriptBlock dans un un User Control [ par dai2 ] Bonjour tous le monde,Je souhaiterais utiliser page.RegisterClientScriptBlock pour générerun script de menu dans ma page asp.net.Losrque j'utilise cet Passage de paramètres sur control en asp.net [ par amorosalain ] SAMMême avec des bouquins, au début c pas facile de migrer vers asp.net. Donc, merci pour votre aide.J'ai créé un controle utilisateur .ascx que je va Variable session et user control [ par StephaneNet ] Bonjour à tous,J'ai un petit soucis et peut etre pourrez vous m'aider. J'ai un user control  sur la page company.asp  avec un lien vers ma page d'accu lister les contrôles d'une page [ par sev622 ] Bonjour,je voudrais faire un traitement sur tous les contrôles d'un certain type d'une page. Donc utiliser une boucle. Voilà ce que j'ai fait  mais j' DropDownList dans GridView [ par fabienmennechet ] Bonjour à tous,voici mon problème : sur une page web, j'ai un gridview remplit par un dataset. Dans ce gridview, il y a une colonne de dropdownlist qu


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,437 sec (4)

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