|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre Expert
![]() John DoeDéveloppeur .NET Inscription : novembre 2010 Messages : 902 ![]() |
Bonjour,
j'ai un gridview bindé à une liste: Code :
Code :
Sinon j'étais partie sur une méthode générique similaire à EstTrieeParClassement qui se base sur le nom de la colonne mais ça devient vite trop lourd vu les multiples possibilités (colonne int,string, custom ...) |
||||
|
|
00
|
|
|
#2 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2010 Messages : 33 ![]() |
Bonjour ,
pour raccourcir un peu le code tu peux peut-être deja faire ca : Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() John DoeDéveloppeur .NET Inscription : novembre 2010 Messages : 902 ![]() |
Merci pour ta réponse, l'utilisation d'un opérateur ternaire évite d'utiliser un if else, mais je pensais plus à une méthode que j'appel avec le nom de la propriété et elle effectue le tri sur cette propriété, je ne sais pas si c'est possible à faire sans utiliser la reflexion.
|
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2010 Messages : 33 ![]() |
Et comme ceci ? :
Code :
joueurs = joueurs.OrderBy(x => (x.GetType().GetProperty("Points").GetValue(x, null))).ToList<Joueur>(); |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() John DoeDéveloppeur .NET Inscription : novembre 2010 Messages : 902 ![]() |
Justement c'est de la reflexion et je voulais savoir s'il y avait un moyen de faire autrement.
Mais merci pour ton aide
|
|
|
00
|
|
|
#6 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2010 Messages : 33 ![]() |
Pourquoi ne veux-tu pas utiliser la reflexion ?
Sinon tu peux creer une classe Liste_joueurs comme ceci , et utiliser la methode de tri sans devoir la réecrire dans chaque page: Code :
Tu peux aussi créer un classe MyPage qui hérite de System.Web.UI.Page et dedans creer une methode de tri sur une liste de joueurs. Ensuite en faisant hériter tes pages de cette nouvelle classe la methode sera partout accessible. |
||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() John DoeDéveloppeur .NET Inscription : novembre 2010 Messages : 902 ![]() |
Cette méthode est utilisé qu'à un seul endroit, le faite de la factoriser c'est juste pour le "sport".
Disons que j'essaye de trouver un moyen pour factoriser ce code sans utiliser la réflexion qui parait-il est couteux. Après si je suis obligé de passer par la réflexion, je laisserais mon code comme il est actuellement, ce datagrid n'est pas amené à évoluer de toute façon. |
|
|
00
|
|
|
#8 | ||||||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2010 Messages : 33 ![]() |
Ha ben si c'est pour le sport on peut s'amuser alors
Si tes données proviennent d'une db SQL alors tu peux bidouiller qql chose de comme ca : Crée une fonction de ce genre dans ta db : Code :
Code :
Code :
Bon la il ne reste plus qu'une seule ligne, niveau factorisation je pense que je ne peux pas mieux faire . ![]() Au point de vue temps d'exécution je ne sais pas quelle méthode est la meilleure pour ton site, l'une sollicite plus le serveur web et l'autre le serveur de données. Par contre en relisant ton code j'ai vu cette ligne quio m'avait échappée la premiere fois : Code :
List<Joueur> joueurs = ViewState["joueurs"] as List<Joueur>; Tu peux les mettre dans la Session et la virer la de Session une fois que tu quittes cette page. |
||||||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() John DoeDéveloppeur .NET Inscription : novembre 2010 Messages : 902 ![]() |
Je suis une grosse feignasse faudrait que je fasse un système de cache pour stocker ces données.
En faite c'est un fichier texte qui est stockée en bdd et depuis ce fichier texte je génère ma liste. Sinon il faut que je test la libraire linq qui permet d'écrire des requêtes sous format de string. Là j'essaye de faire un gridview qui est un tableau de score croisé , le contrôle gridview n'as pas l'air de bien s'y prêter faut que je le génère en code on dirait.
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com