Creation dynamique des composant

calojiro Messages postés 6 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 7 avril 2011 - 2 avril 2009 à 17:03
calojiro Messages postés 6 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 7 avril 2011 - 4 avril 2009 à 18:44
je suis entrain de créer un formulaire dynamique depuis une BDD,
je crée des checkBox et des TextBox (composants serveur), la création passe bien mais après quand je poste le formulaire j'arrive pas à les repérer
mon code de creation :

for(int i=0;i<condTable.Rows.Count,++)

{
  CheckBox check = new CheckBox();           
  check.ID =
condTable.Rows[0][0].ToString()
;
  check.Text =
condTable.Rows[0][1].ToString()
;




   check.CssClass = "checkBox";           
   holder1.Controls.Add(check);

   check.Dispose();


        /*
           meme choses pour les textBox

    */                      
}


je veux recupérer les ID des checkbox coché ainsi les valeurs des texts box pour les inserer ans une autre table
j'ai esseyé avec ca :
foreach (Control c in this.Controls)
 {
        if (c.ToString() == "System.Web.UI.WebControls.CheckBox")
        {              
            // mon id est de la façon : spXXXX
              if (c.ID.Substring(0, 2) == "sp")
              {
                   //code pour inserer la valeur XXXX a la table
               }
         }

}
ca n'a donné aucun resultat.
si qqn a une solution n'hisite pas, merci d'avance.

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
2 avril 2009 à 22:03
Salut

C'est une tres mauvaise pratique cette solution.

Il faut utiliser un datagridview ou datarepeater ou datalist
et les itemtemplate pour faire ce gere de développement

Recherche sur internet comment faire?

Mais pas de contruction dynamique par ajout de controle
tu pers toute la puissance de asp.net

Bon courage
0
calojiro Messages postés 6 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 7 avril 2011
4 avril 2009 à 18:44
merci pour la remarque , en fait je suis entrain dapprendre le asp.net tous seul, d'ou mes mauvaises habitudeq, et la je suis face a un projet   ou je dois rendre des resultats. donc je dois utiliser des repeater imbriqués: de la foçon suivante
<repeater id="mode" runat="server>
.....

" />
<label for="<%#DataBinder.Eval(Container.DataItem,"id_mod")%>"><%#DataBinder.Eval(Container.DataItem,"nom_mod") %></label>

<!-- ici je dois inclure un autre repeater pour faure un autre filter -->
string  filtre = "select * from table where id_niv='"+
<%#DataBinder.Eval(Container.DataItem,"id_mod")%>
DatView dv = new DataView(getTable(filtre));
<!-- le deuxieme repeater qui prend dv comme datasource-->
<repeater id="niv" runat=server dataSource ="<%dv%>">

.....
<!-- afficher les valeurs depuis la dv -->
</
itemTemplate>





</repeter>
</repeater>
jai esseyé un truc ressemble a ca bien structuré mais tjr des probleme au niveau de debug;
merci bien de me faire signe c ma solution est une bonne pratique ou je suis tjr dans la mauvaise voie
0
Rejoignez-nous