Donc, cette question peut être un peu vague, mais j'ai des discussions constantes à ce sujet:Asp.Net GridView: Bon ou mauvais/Quels types de données utiliser pour la liaison?
Lors de la conception d'une page Asp.Net, beaucoup de fois vous pourriez juste vouloir jeter un GridView rapide et sale sur la page . Lorsque vous parcourez cette route, vous disposez des différentes options de source de données (j'utilise généralement ObjectDataSource lié à un objet métier) et vous pouvez également lier manuellement.
J'ai vu beaucoup de variations sur ce que les types de données peuvent fournir automatiquement la fonctionnalité de tri dans la grille. J'ai vu des personnes traduire littéralement leurs collections POCO personnalisées dans DataTables dans leurs objets métier afin que GridViews puisse plus facilement prendre en charge ce type de comportement.
Vous pouvez vraiment obtenir beaucoup de comportements différents d'un GridView en gérant vous-même tous les événements disponibles (OnSorting, OnUpdating, etc.) et cela peut finir par être hautement personnalisé à long terme. Même si c'est le cas, vous pouvez rencontrer d'autres petits problèmes sournois comme ne pas avoir la possibilité d'utiliser la touche "Entrée" effectuer automatiquement l'opération de mise à jour pour une ligne donnée. En effet, le bouton par défaut sur la page peut être en dehors de GridView, et ASP.Net vous permet uniquement de spécifier le bouton par défaut pour un panneau donné et n'honore pas ce comportement pour les boutons dans les modèles GridView. C'est juste un exemple, remarquez. Il y a aussi bien sûr la question de savoir si la page doit revenir à la source de données à chaque opération de filtrage ou si la source de données entière doit être mise en cache dans ViewState sur la page pour permettre le filtrage/tri sans déplacement vers la base de données Voici donc la question ultime: est-il raisonnable d'utiliser un GridView sur une page où vous voulez des opérations CRUD de base, même si cela peut impliquer de transformer vos collections personnalisées en un type de DataTable? GridViews devrait-il être complètement abandonné au profit de quelque chose d'autre comme DataList, ListView ou Repeater? Ces dernières options peuvent certainement être plus flexibles, mais cela signifie-t-il que la gestion par défaut de la sélection de lignes, de l'édition, du tri, etc. de GridView doit être reconstruite pour chaque scénario?
Toutes les pensées raisonnables sur ce sujet apprécié!