begin process at 2012 02 14 04:28:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

WebControl

 > 

Création d'une classe pour réutiliser du code sur différentes pages


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

Création d'une classe pour réutiliser du code sur différentes pages

jeudi 16 octobre 2008 à 00:30:11 | Création d'une classe pour réutiliser du code sur différentes pages

tom741pawa

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.
jeudi 16 octobre 2008 à 09:34:09 | Re : Création d'une classe pour réutiliser du code sur différentes pages

nhervagault

Administrateur CodeS-SourceS
Salut

Il est possible de faire des classes utilitaire en Dotnet
et de passer dans les parametres de ta methode l'objet dropdowlist.

Apres ce qui est conseillé de ce mettre cette classe utilitaire en singleton
de facon a l'utiliser sans l'instancier.

Bon coding

jeudi 16 octobre 2008 à 09:54:43 | Re : Création d'une classe pour réutiliser du code sur différentes pages

danious


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.
jeudi 16 octobre 2008 à 12:55:36 | Re : Création d'une classe pour réutiliser du code sur différentes pages

tom741pawa

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.
jeudi 16 octobre 2008 à 12:57:07 | Re : Création d'une classe pour réutiliser du code sur différentes pages

nhervagault

Administrateur CodeS-SourceS
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();
}

Un truc du genre (c'est non testé)
jeudi 16 octobre 2008 à 13:09:13 | Re : Création d'une classe pour réutiliser du code sur différentes pages

nhervagault

Administrateur CodeS-SourceS
Je completes ma reponse en fonction de ton nouveau post

dropdowlistpopulate (dropdowlist dl, string sql)
{

//remplissage du dataset
dl.datavalue = ..
dl.datamember = ..
dl.datasource = dataset.tables[0];
dl.databing();
}

Un design pattern singleton
ressemble à

public MaClasse{
//cosntructeur private
private MaClasse()
{
}

public static MaClasse GetInstance()
{
if (instance==null){
lock (typeof(MaClasse))
{
instance = new MaClasse();
}
}
return instance;
}
}


//liste des methodes

public void SayHello(){
Console.write("hello");
}
}

}


//Utilisation

MaClasse.GetInstance().SayHello(); --> pas besoin de faire de new.
jeudi 16 octobre 2008 à 13:41:50 | Re : Création d'une classe pour réutiliser du code sur différentes pages

danious

Réponse acceptée !

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
jeudi 16 octobre 2008 à 19:46:36 | Re : Création d'une classe pour réutiliser du code sur différentes pages

tom741pawa

Merci bien pour vos réponses ^^.

Je teste tout ca dès que je peux.

 

Encore merci ^^.



Cette discussion est classée dans : créer, page, pages, classe, dropdownlist


Répondre à ce message

Sujets en rapport avec ce message

Aspx et html [ par laridak ] J'ai une petite remarque pour toi au lieu d'utiliser trois textbox pour avoir l'heur vous pouvais utiliser un MaskedTextBox<span probleme avec l'evenement OnSelectedIndexChanged [ par segio94 ] Bonjour.Parfois ma dropdownlist ne leve pas l'evenement OnSelectedIndexChanged. Apparemment, je peux resoudre le probleme en levant manuellement l'eve créer une page web asp.net mobile [ par rehab ] salut tout le monde ,je developpe un site e-commerce sur pocket pc  .j'utilise langage c#.comment créer une page web mobile sur l'émulateur pocket pc 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 Evenement SelectedIndexChanged sur DropDownList ajoutée dynamiquement à une page [ par garcimor59 ] Bonjour à tous,Alors voilà, je vous expose mon probleme : J'ajoute dynamiquement des DropDownList à page aspx de la maniére suivante : ListState _test Comment créer une fonction accessible sur toutes mes pages ASP.NET [ par vinzemuls ] Bonjour,je souhaites utiliser une fonction avec des arguments différents sur plusieurs pages de mon site. comment la rendre utilisables sur toutes les explication UpdatePanel [ par pierodactil ] Salut a tous,alors voila, j'essaye de comprendre comment fonctionne les timers en AJAX pour mettre a jour un DIV. Tout va bien ca fonctione nickel.Le La premiere valeur d'une DropDownList ? [ par kiraqi ] Salut, Comment pourrai-je attribuer la premier valeur (d'un requête) à une dropdownlist au chargement de la page ASP.Net ? je fais :<span style="fon Passage entre 2 pages [ par elpens ] Bonjour,J'ai un petit soucis que voilà :J'ai un gridView, qui me avec un bouton à chaque lignes. Lorsque je clique, il m'ouvre une pop-up.Dans cette n Affichage de Requete [ par antoineraymond ] Bonjour,je cherche un moyen de séparer les différentes lignes d'une requête SQL en plusieurs pages (10 lignes par page). Je voudrais pouvoir avoir le


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 0,749 sec (3)

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