[asp.net 2.0] GridView, ObjectDataSource et Search

Résolu
cs_bigflo93 Messages postés 50 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 13 septembre 2008 - 26 avril 2006 à 11:07
mdemo Messages postés 90 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 10 mai 2010 - 26 avril 2006 à 18:38
Salut à tous :)

Je développe en Asp.net 2.0 et j'utilise le nouveau control GridView... C'est qu'il est quand même super bien ce controle, surtout quand on lui attribut une source comme l'ObjectDataSource... mais voilà ....
L'objectdatasource propose un max de fonctionnalité, mais je n'arrive pas à faire une requete SQL customisé pour faire une recherche.
Je m'explique. L'objectdatasource permet de lui assigner une "Select Method" ... mais dans ma page, j'ai un bloc html pour faire une recherche selon des critères proposés (la plupart du temps, dans une dropdown list). Mais voilà... la Select Method ne prend pas de paramètre donc impossible d'utiliser la méthode choisie pour faire un Select et un search ...
Alors je tente de passer par les FilterExpressions, mais c'est la galère je trouve, car faut produire tout un mécanisme de construction de la FilterExpression selon les critères, et surtout... ça n'empêche pas la requête SQL de prendre toute les infos et pas seulement celle dont j'ai besoin... Car on voit pas la différence avec peu de lignes, mais quand on arrive avec quelques dizaines de milliers de lignes, c'est couteux en temps et performance de faire un tri sur tout ...

Du coup, j'ai laissé tombé les FilterExpressions (enfin, j'ai mis de coté ^^) et je pensais binder à la main mon GridView.
Du style:
List<ma_class> collection = ma_class_collection.GetSearch(ici, les paramètres);
this.GridView1.DataSource = collection;
this.GridView1.DataSourceID = null;
this.GridView1.DataBind();

Mais le hic, c'est que du coup, les CommandField ne marche plus. Je ne peux plus éditer mes lignes...

Bref, comment faire pour permettre une recherche selon des critères indéterminés à l'avance ?
Faut-il utiliser les FilterExpressions ? Si oui, comment ?
Dois-je continuer avec le fait de switcher les sources pour mon GridView ?

Bref, merci d'avance à ceux qui pourront m'aider :D

2 réponses

cs_bigflo93 Messages postés 50 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 13 septembre 2008
26 avril 2006 à 12:22
En fait, c'est bon j'ai trouvé lol
Je suis complétement passé à coter. C'est tou simple, vous allez voir ^^
Suffit juste de créer une select method qui prend des parametre du style List<ma_class> Select(int parma1, int param2);
Et avec Visual via les SmartTag ou autre assistant, quand vous selectionnez cette méthode pour la fonction Select, l'écran suivant vous permet de parametrer les parametre... Donc suffit de choisir la source pour les paramètres et le tour est joué ^^
3
mdemo Messages postés 90 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 10 mai 2010
26 avril 2006 à 18:38
Bonjour,
La select method crée en effet directement les bind sur les données. C'est très pratique, par contre fais attention car l'assistant prête à confusion si tu crées une requête update ou delete car en cliquant sur le Next, après le choix d'une requête update par exemple, tu retrouves les données à binder de la select method.
Pour lier des données dans le cas de requêtes update, delete... il te faudra simplement aller dans les propriétés de ton objectdatasource, et cliquer sur UpdateParameters par exemple, où tu retouveras un assistant.
Good luck!
0
Rejoignez-nous