Affectation dynamique d'un identifiant LISTBOX ASP.NET C#

garcimor59 Messages postés 66 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 6 mars 2008 - 11 oct. 2007 à 17:32
garcimor59 Messages postés 66 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 6 mars 2008 - 17 oct. 2007 à 09:08
Bonjour à tous,

Voilà j'utilise le code suivant pour afficher dynamiquement des list box dans une page aspx en fonction du nombre de CLT que j'ai dans ma base (sqlserver)

   

           <tr><td class="choicelistlabel"><%# DataBinder.Eval(Container.DataItem, "CLT_NAME") %> : </td>

                 <td>

                     " CssClass="choicelist"runat="server">

                 </td>
           
</tr>

    

J'ai une erreur sur la ligne en rouge : Parser Error Message: The server tag is not well formed.
J'ai essayé avec un banal select et ça fonctionne... mais là en passant par un textbox il est pas content...

Pourriez-vous m'aider svp?? Merci

Ou alors si vous connaissez une méthode pour afficher dynamiquement des listbox avec des infos provenant d'une BDD je suis preneur aussi lol...

Sinon j'avais essayé avec en mettant un panel dans mon aspx et en le remplissant dans le code-behind.. ça fonctionnait bien aussi... mais comme je dois encadré ma listbox avec un label et un bouton c'est la merde...

Enfin, merci pour la future...

++

8 réponses

jojo2666 Messages postés 21 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 12 octobre 2007
11 oct. 2007 à 17:50
je vois pas ou est le probleme de la solution N°2....
moi elle me plait tres bien..

"Sinon j'avais essayé avec en mettant un
panel dans mon aspx et en le remplissant dans le code-behind.. ça
fonctionnait bien aussi... mais comme je dois encadré ma listbox avec
un label et un bouton c'est la merde..."
de toute facon tu dois parcourir ta colleciton... alors ou est le probleme en plus de rajouter la listbox dans le panel, de mettre avant un label contenant le champs que tu veux, et apres d'y ajouter un bouton!
0
garcimor59 Messages postés 66 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 6 mars 2008
11 oct. 2007 à 18:10
Ben tout ça se trouve dans un tableau...
donc j'ai un truc du genre :

<td> LABEL</td><td>Panel (enfin listbox) </td> <td> BOUTON</td>

Mais TD sans dans la page aspx... donc faudrait que je fasse 3 panel.. c'est un peu lourd non??

Sinon j'avais pensé faire un controle user et l'incorporé... mais bon j'ai trouvé un méthode sur le net... il me fait pas d'erreur.. mais il ne m'affiche pas mon controle.. de plus avec cette méthode je ne sais pas comment affecté des ID dynamiquement au label, button et listbox...
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
11 oct. 2007 à 21:00
Bonjour,

pourquoi tu veux affecter des ID au controle ? le Repeater, enfin RepeaterItem, implémente INamingContainer tu peux donc avoir plusieurs fois le meme id de controle dans la page, l'interface INamingContainer va se charger de créer les ID uniques automatiquements

Si tu veux ensuite récuperer une ligne de ton repeater tu peux faire (DataList)rptTruc.Items[i].FindControl("dlTruc") ... généralement on utilise ca dans l'event ItemDataBound ou ItemCreated et on récuperer le RepeaterItem dans e.

Par contre pourquoi créer un Tableau avec un repeater ? C'est le role du gridview ! il est prévu pour ca, cela sera beaucoup moins compliqué d'utiliser les contrôles adéquats.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
garcimor59 Messages postés 66 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 6 mars 2008
16 oct. 2007 à 16:16
Rebonjour,

Alors voilà la suite :
J'ai essayé avec ça :

<select multiple="multiple" class="choicelist" id="idCLT<%# DataBinder.Eval(Container.DataItem, "ID_CLT") %>">        </select>

Ca marche du tonnerre, j'ai donc en fonction des clients des IDs du genre, idCLT1, idCLT2,....
Ce qui me permet de les réutiliser facilement dans mes javascript.
Mais l'utilisation dans le codebehind en C# est plus compliquée en effet j'ai testé :

ListBox test = (ListBox)createCLT.FindControl("idCLT1");

Et test est null.... (Ca me parait normal, mais l'est-ce vraiment?)

Ma question est donc comment puis-je faire pour definir l'ID de mon choix en utilisant un contrôle ASP (ListBox) dans mon Repeater...
Exemple qui ne fonctionne pas :
" CssClass="choicelist" runat="server">

Ou alors auriez-vous une solution pour que je puisse manipuler mon select dans le CodeBehind.

Merci d'avoir pris le temps de me lire et surtout merci si vous avez une solution lol!

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
16 oct. 2007 à 17:21
Bonjour,

Pourquoi veux tu affecter des ID au controles ? (bis)

c'est pas comme ca que ca fonctionne. Pour récuperer une instance dans un Repeater il faut passer par un rpt.Items[0].FindControl("lecontrol");

et oui c'est normal qu'ASP.net ne reconnais pas ton contrôle puisqu'il n'est pas déclaré pour asp.net (runat=server)

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
garcimor59 Messages postés 66 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 6 mars 2008
16 oct. 2007 à 17:53
Je souhaite affecter des ID aux controles pour pouvoir les manipuler également en Javascript...

Je pense qu'avec ta méthode je pourrais m'en sortir en C# pour manipuler les controles crées.... quoique que ça serait plus simple pour moi d'avoir un ID de type ID_CLTx

Merci
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
16 oct. 2007 à 20:44
ASP.net va générer des id automatiquement ... donc tu les auras aussi en js

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
garcimor59 Messages postés 66 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 6 mars 2008
17 oct. 2007 à 09:08
Oki merci j'ai bien compris, qu'il génére des ID automatiquement, je vais regarder ça de plus prés....

Mais est-ce qu'il est possible d'affecter des ID de mon choix?

Merci
0
Rejoignez-nous