Oui, j'ai essayé comme ça, mais le problème est que mes données viennent d'une base de données et non d'une liste. ce qui me force à rajouter le
from pers in mabdd.Personnes
avant le select.
ça veut dire qu'il me faut à chaque fois déclarer "mabdd" sinon ça ne marche pas.
D'autre part, j'aimerai ne pas avoir à coder le tout dans la même classe et ainsi que mon datagrid puisse afficher des tables différentes.
J'aurais donc un code du style
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
class Personne
{
protected maBaseDeDonnees mabdd = new maBaseDeDonnees ();
public Object listeTable()
{
var listePersonnes = (from pers in mabdd.Personnes
select new
{
Nom = " " + pers.PER_NOM,
Prénom = " " + pers .PER_PRENOM,
Email = " " + pers .PER_EMAIL,
Adresse = " " + pers .PER_ADRESSE
});
return listePersonne;
}
}
class pageDataGrid
{
protected DataGrid monDataGrid;
Personne pers = new Personne();
protected void Page_Load(object sender, EventArgs e)
{
var maListeComplete = GenericCast(pers.listeTable(), ?????)
var maListeFiltre = GenericCast(filtreElements(maListeComplete), ?????)
monDataGrid.DataSource = maListeFiltre;
monDataGrid.Bind();
}
protected Object filtreElements(Object listeComplete)
{
return (from list in listeComplete
select list).Take(12);
}
public static A GenericCast<A>(object anonymousInstance, A type)
{
return (A)anonymousInstance;
}
} |
Voilà, j'ai mis des points d'interrogation en rouge aux endroits où je sèche. J'ai simplifié l'exemple mais normalement, mon dataGrid est simplement un objet dans une feuille ascx que je place dans un aspx et que je rempli avec la table voulue suivant l'aspx dans laquelle il se trouve.
Le but bien évidemment est d'essayer d'avoir un semblant de code propre.
Partager