tom741pawa
Messages postés19Date d'inscriptionmercredi 19 septembre 2007StatutMembreDernière intervention28 octobre 2008
-
16 oct. 2008 à 00:30
tom741pawa
Messages postés19Date d'inscriptionmercredi 19 septembre 2007StatutMembreDernière intervention28 octobre 2008
-
16 oct. 2008 à 19:46
Bonjour à tous,
je ne sais pas si je suis dans le bon forum, j'ai hésité avec le forum C#.
Je suis en train de créer un petit site web et j'ai 4 / 5 pages ou j'ai une dropdownlist.
J'ai fait une méthode sur chaque page dans le code-behind pour peupler la dropdownlist. Ca marche super, mais à chaque fois je suis obligé de faire un copier/coller de la méthode quand je veux créer une nouvelle page alors je me suis dit que ce serait peut être mieux de créer une classe externe et de la récupérer à chaque fois ^^.
J'ai pas mal d'interrogations :
Est-ce que les dropdownlist doivent avoir le même nom ?
dans ma method j'écris par exemple : maDropDownList.Items.Add() et j'adapte dans chaque method. Par exemple dans la page 2 : maDropDownList2.Items.Add()
Comment je peux faire en sorte que la classe s'adapte en fonction du nom de la dropDownList dans la page ?
Je ne sais pas trop comment expliquer ca : en gros pour ceux qui connaissent ce serait comme utiliser "global" dans une fonction en php.
Ce que je voudrai en gros c'est que dans mes pages :
je défini le nom de la dropdownlist pour qu'elle soit copiée et utilisé dans la classe qui va suivre
j'appelle ma classe externe.
Vaut-il mieux carrément que je créer complètement la dropdownlist dans la classe externe ?
J'espère que l'un d'entre vous arrivera à me comprendre ^^.
Merci d'avance.
A voir également:
Création d'une classe pour réutiliser du code sur différentes pages
danious
Messages postés27Date d'inscriptionjeudi 8 juillet 2004StatutMembreDernière intervention 5 novembre 2008 16 oct. 2008 à 13:41
Ah j'ai compris les choses différemment de nhervagault !
En fait les 2 méthodes aboutissent à ce que tu veux : ne pas être obligé de faire des copier/coller partout. J'ai parlé du UserControl parce que tu as insisté sur les dropdownlist (c'est-à-dire sur le design). Si c'est juste un problème de datasource identique dans plusieurs pages, la classe utilitaire est ce qu'il y a de mieux et de plus simple.
Sinon, pour répondre à ta question sur les usercontrol, supposons que ton usercontrol s'appelle "uc", tu peux :
- manipuler la dropdownlist en faisant : (DropDownList)uc.FindControl("madropdownlist"), pour par exemple choisir l'index sélectionné ou connaître ce qu'elle contient.
- ajouter des propriétés publiques à ton usercontrol, qui seront disponibles directement en faisant : uc.TaPropriete
danious
Messages postés27Date d'inscriptionjeudi 8 juillet 2004StatutMembreDernière intervention 5 novembre 2008 16 oct. 2008 à 09:54
Bonjour,
Ce n'est pas plutôt un UserControl qu'il te faut? L'usercontrol contiendrait la dropdownlist et la fonction pour la peupler dans son propre code-behind. Après, dans chaque page, tu ajoutes simplement ce usercontrol comme tu le ferais pour n'importe quel autre controle. Evidemment, tu pourras accéder et contrôler à ta guise la dropdownlist de l'usercontrol depuis chaque page.
tom741pawa
Messages postés19Date d'inscriptionmercredi 19 septembre 2007StatutMembreDernière intervention28 octobre 2008 16 oct. 2008 à 12:55
Re,
nhervagault : je n'ai pas très bien compris ce que tu as essayé de me dire (je suis encore débutant en C# ^^)
Je n'avais pas pensé sur le coup aux usercontrols : je n'en ai jamais fait, mais je vois à peu près à quoi ca ressemble.
Par contre ta dernière phrase danious m'intéresse ^^.
Je modifie donc ma question :
si j'utilise un usercontrol, je peux directement changer certains paramètres sur chaque page ?
c'est à dire par exemple : je peuple ma dropdownlist avec une requête sql que j'ai fait dans le usercontrol, est-ce que sur une page je peux modifié cette commande ?
Si c'est possible, auriez-vous un bon tutoriel ou autre sur les usercontrols ?
Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 16 oct. 2008 à 12:57
Non un user control est une réunion de plusieurs controles.
Exemple de usercontrol, un textbox avec une image.
Ici l'utilisation d'une classe utilitaire - helper est suffisante.
Ajouter un usercontrol complexie l'application pour rien.
Tu peux utiliser un usercontrol si tu veux ajouter des comportement javascript
dessus par exemple aussi.
Mais il est possible de le faire avec un helper.
Dans la classe helper
je verrais
dropdowlistpopulate (dropdowlist dl, dictionnary<string,string> values)
{
foreach(string v in values){
dl.items.add(v.key,v.value);
}
dl.databing();
}