begin process at 2012 05 27 18:45:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

Autre

 > 

Création dynamique de champs


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

Création dynamique de champs

mardi 22 août 2006 à 20:33:40 | Création dynamique de champs

quineman

Je souhaite créer un formulaire dépendant d'un nombre définit par l'utilisateur.
Si l'utilisateur souhaite 6 personnes, alors 6 formulaire de renseignements de personnes doivent apparaitre sur la meme page... Pour cela, il faut que je créé des champs de façon dynamique. Puis que je récupére ces champs pour faire une boucle d'insert.
Je l'ai déjà fait en ASP en utilisant des index pour nommer mes champs et en les récupérant pour créer ma boucle mais en .NET, je ne vois pas du tout comment faire et je ne crois pas que les index pour nommer les champs soit très propres. De plus je sais qu'il existe une méthode duplicate pour les controles...
Personne ne serait m'orienter dans mes recherches, la je bloqueeeeeeeeeeeee

d'avance merci


mercredi 23 août 2006 à 01:21:55 | Re : Création dynamique de champs

mdemo

Bonjour,

Tu peux placer dynamiquement des champs en utilisant un PlaceHolder par exemple. Libre à toi de leur attribuer dynamiquement un nom qui te permettra de les récupérer. (ex: user1, user2...address1, address2...)

Mais pourquoi n'utiliserais-tu pas un contrôle serveur type formview (ou autre) ? Tu lui mets dynamiquement un PageIndex à 6 et ça devrait marcher pour toi (si tu es connecté à une base de données). Ca me parait plus simple, mais je n'ai peut être pas bien compris ton besoin.

Good luck.

 

 

mercredi 23 août 2006 à 01:23:49 | Re : Création dynamique de champs

jesusonline

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Bonjour,

Je viens rapidement de te faire un exemple :

Default.aspx :

<%@PageLanguage="C#"%>

 

<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<scriptrunat="server">

   

 

    privatevoid Page_Load(Object sender, EventArgs e)

    {

        int countUC;

        if (int.TryParse(Request.QueryString["countUC"], out countUC))

        {

            MultiView1.ActiveViewIndex = 1;

            for (int i = 0; i < countUC; i++)

            {

                Control c = Page.LoadControl("UCPersonne.ascx");

                PHUC.Controls.Add(c);

            }

        }

    }

 

    privatevoid ButtonAddFields_Click(Object sender, EventArgs e)

    {

        Response.Redirect("Default.aspx?countUC=" + TextBoxNbPersonnesToAdd.Text);

    }

 

    privatevoid ButtonAddPersonnes_Click(Object sender, EventArgs e)

    {

        System.Data.DataTable table = new System.Data.DataTable("Personne");

        table.Columns.Add("FirstName", typeof(String));

        table.Columns.Add("LastName", typeof(String));

 

        foreach (Control c in PHUC.Controls)

        {

            if (c isUserControl)

            {

                System.Data.DataRow row = table.NewRow();

                row["FirstName"] = ((TextBox)c.FindControl("TextBoxFirstName")).Text;

                row["LastName"] = ((TextBox)c.FindControl("TextBoxLastName")).Text;

                table.Rows.Add(row);

            }

        }

        MultiView1.ActiveViewIndex = 2;

        GridViewPersonnes.DataSource = table;

        GridViewPersonnes.DataBind();

    }

   

</script>

 

<htmlxmlns="http://www.w3.org/1999/xhtml">

<headrunat="server">

    <title>Untitled Page</title>

</head>

<body>

    <formid="form1"runat="server">

        <div>

            <asp:MultiViewID="MultiView1"runat="server"ActiveViewIndex="0">

                <asp:Viewrunat="server">

                    <asp:TextBoxID="TextBoxNbPersonnesToAdd"runat="server"Text="3"/><asp:ButtonID="ButtonAddFields"

                        runat="server"Text="Generate fields"OnClick="ButtonAddFields_Click"/>

                </asp:View>

                <asp:Viewrunat="server">

                    <asp:PlaceHolderID="PHUC"runat="server"/>

                    <asp:ButtonID="ButtonAddPersonnes"runat="server"Text="Add personnes"OnClick="ButtonAddPersonnes_Click"/>

                </asp:View>

                <asp:Viewrunat="server">

                    <asp:GridViewrunat="server"ID="GridViewPersonnes"AutoGenerateColumns="true">

                    </asp:GridView>

                </asp:View>

            </asp:MultiView>

        </div>

    </form>

</body>

</html>

 

UCPersonne.ascx

<%@ControlLanguage="C#"ClassName="UCPersonne"%>

 

<scriptrunat="server">

 

</script>

 

<asp:LabelID="LabelFirstName"runat="server"AssociatedControlID="TextBoxFirstName"EnableViewState="false">Prénom :</asp:Label><asp:TextBoxID="TextBoxFirstName"runat="server"></asp:TextBox><br/>

<asp:LabelID="LabelLastName"runat="server"AssociatedControlID="TextBoxLastName"EnableViewState="false">Nom :</asp:Label><asp:TextBoxID="TextBoxLastName"runat="server"></asp:TextBox><br/>

<hr/>



C'est une méthode trés crade et je t'interdis de faire aussi sale que moi ;-) mais j'espere que tu comprendras le principe du jeu :-) il y aurais d'autres facons de faire sans passer par un response.redirect mais c'est la facon la plus simple de faire.



Cyril - MVS - MCP
mercredi 23 août 2006 à 18:34:47 | Re : Création dynamique de champs

quineman

La piste du formView me parait intéressante mais la ta solution Cyril marche vraiment Nickel, je te remercie de m'avoir débloqué encore une fois. Je te donnerais l'adresse du site quand il sera fini pour que tu me dise ce que tu en pense si ça t'interesse biensur.
MERCI  !!!

jeudi 24 août 2006 à 18:12:32 | Re : Création dynamique de champs

quineman

J'ai un problème bizare : mon placeholder ne récupére pas les controles...
Ma boucle ne fonctionne donc pas
For Each c As Control In PHUC.Controls
next c
Quand j'utilise la methode HasControls, il me renvoit false...
Mon place holder est sur ma page, donc pas besoin de le déclarer...
Est ce que ça pourrait être du au fait que je suis en VB.NET ?
Merci
jeudi 24 août 2006 à 18:24:29 | Re : Création dynamique de champs

quineman

J'ai essayé d'utiliser ma boucle juste après avoir créé mes controles dans le placeholder et elle marche.
Dans la procedure click qui suit, je ne retrouve plus les controls...

jeudi 24 août 2006 à 21:48:42 | Re : Création dynamique de champs

quineman

En fait, excuse, j'avais mal compris le code.
Il faut que le :
Dim c As Control = Page.LoadControl("../ascx/UCPersonne.ascx")
PHUC.Controls.Add(c)
soit dans le page load sinon ca ne marche pas...



Cette discussion est classée dans : créer, dynamique, champs, création, souhaite


Répondre à ce message

Sujets en rapport avec ce message

[asp-->bar][WINDEV]création de site web dynamique [ par ndakonan ] Salut,j'ais fait un BTS en NTIC, et je suis un amateur dans la programmation, précisement dans le webmastering. je fait un stage dans une entreprise d Création dynamique de usercontrol dans une page [ par fouedelapoche ] Bonjour,voici mon souci : J'ai une page dans laquelle je veux créer des usercontrol dynamiqument.En faite, je possède une première page dans laquelle Comment créer un menu dynamique horizontal en ASP.NET 1.1 ? [ par Carrillon ] Bonjour à tous, Je souhaiterai savoir comment créer un menu dynamique horizontal en ASP.NET 1.1 pour un site Internet. En effet, le WebControl Menu AutoCompleteExtender (dynamique) [ par aylandar2000 ] bonjour bon voila j'ai un petit soucis... j'avais un petit module de "l'auto complétion" que je devais faire sur un champs texte de "mot clé", un mo comment créer un flux rss dynamique en asp [ par sliverdust ] Bonjour, je désire créer un flux rss dynamique en asp avec une base de donnée access. est ce que c'est possible ?? si oui comment procéder ?? merci po Création dynamique d'un tableau avec BD [ par paloxicide ] Je programme sous VS 2005 et VB.net mais débutantJ'aimerais savoir comment générer un tableau avec dans la 1ère colonne mes données d'une table de la Repeater : Créer un ID dynamique [ par KC62 ] Bonjour, je souhaiterais créer sur mon repeater un id dynamique pour les checkbox qu'il contient. voici mon code <asp:chec création d'un tableau dynamique [ par zikofs ] salut à tous,je voudrais créer un agenda pour des RDV, je voudrais faire ça mais je sais pas comment faire avec ASP pour la création de tableaux dynam [C# 2.0] Création de variables dynamiques [ par javajavajava ] Bonjour,je sollicite votre aide pour savoir si il est possible de créer des variables dynamiquement ?Cela revient à disposer d'un moyen de pouvoir con Création un GridView Pour la saisi [ par dj200812002 ] bonjour,    mon probléme c'est que je veux faire un GridView de saisi pour des opérations comptables.c'est-a-dir de faire la saisi dans la GridView sa


Nos sponsors


Sondage...

Comparez les prix

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 : 1,123 sec (3)

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