Repeater dynamique

goyo33 Messages postés 5 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 30 juillet 2009 - 13 juil. 2009 à 14:47
goyo33 Messages postés 5 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 30 juillet 2009 - 20 juil. 2009 à 08:48
   bonjour je souhaite par un bouton valider récupérer les valeur de mes diferents controles contruis en code behind par un repeater lié a un liste d'objet mais j'y arrive pas a trouver les controle avec cette commande  
tb = RptTableau.FindControl(Control.libelleControle)
voici le code
 Protected Sub RptTableau_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles RptTableau.ItemDataBound
 Dim valeurI As Controle = e.Item.DataItem
        Dim lblLibelleControle As Label = e.Item.FindControl("Label1")
        Dim panel As Panel = e.Item.FindControl("Panel1")

        lblLibelleControle.Text = valeurI.libelleControle

        Select Case valeurI.nomControle

            Case "Liste deroulante"
                Dim listD As New DropDownList

                listD.Items.Add("aucun")
                listD.ID = lblLibelleControle.Text
                For Each valeur As String In valeurI.valeurControle
                    listD.Items.Add(valeur)

                Next
                panel.Controls.Add(listD)

            Case "Saisie libre"
                Dim textbox As New TextBox
                textbox.ID = lblLibelleControle.Text
                textbox.EnableViewState = True
                panel.Controls.Add(textbox)

            Case "Liste de bouton"
                Dim listeRdBouton As New RadioButtonList
                For Each valeur As String In valeurI.valeurControle
                    listeRdBouton.Items.Add(valeur)

                Next
                listeRdBouton.ID = lblLibelleControle.Text
                listeRdBouton.RepeatDirection = RepeatDirection.Horizontal
                panel.Controls.Add(listeRdBouton)

            Case "Case à cocher"
                Dim cases As New CheckBoxList
                For Each valeur As String In valeurI.valeurControle
                    cases.Items.Add(valeur)

                Next
                cases.ID = lblLibelleControle.Text

                cases.RepeatDirection = RepeatDirection.Horizontal
                panel.Controls.Add(cases)

        End Select
....

 Protected Sub BtValider_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtValider.Click
marche pas!!!

3 réponses

goyo33 Messages postés 5 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 30 juillet 2009
13 juil. 2009 à 15:22
voici mon repeater

 
   
    <tr>
    <td >
   
       
    </td>
    <td >
       
       
    </td>
    </tr>
   
   
   
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
19 juil. 2009 à 18:32
Bonjour,

rptPouet.FindControl ne va jamais te donner quelque chose. En effet, les templates sont repetés n fois, tu ne peux donc pas utiliser un FindControl pour récuperer UN controle précis. La seule solution est de passer par l'évenement itemDataBound.

Mais je ne suis pas sur de comprendre ce que tu cherches à faire.

____________________________________________
Cyril - MVP ASP.net - [url=http://www.cyrildurand.net]Consultant ind
0
goyo33 Messages postés 5 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 30 juillet 2009
20 juil. 2009 à 08:48
En fait je demande a un utilisateur de quoi il a besoin sur une page web pour donner un avis sur un produit. Donc dans une autre page je demande ces besoins(textbox, liste de radio bouton...)je transforme cela en fichier xml et je traite celui ci avec la page donnée et le repeater.Sur l'appui d'un bouton valider je stocke alors les donnée de l'utilisateur dans un fichier xml... Le probleme c'est que je n'arrive pas à trouver les controle...j'ai donc changé j'ai utiliser un tableau pour stocker les donnée de mon fichier xml e j'ai utilisé la commande suivante pour trouver les controle lors de l'appui sur le bouton: bouton.Parent.FindControl(Controle.libelleControle)
LibelleControle est l'iD du controle...
merci pour ta reponse
0
Rejoignez-nous