Filtrez les données affichées dans DatagridView sans modifier la source de données sous-jacente de DatagridView. Bien que le DataTable soit très simple grâce à sa vue par défaut, le filtre qui est lié à l'ensemble de données de l'ensemble de données via DataMember est plus difficile.
Scénario 1: filtrez directement DataTable
Lorsque la source de données de DataGridView est définie directement sur DataTable, elle peut être filtrée en modifiant la propriété DATAT-LAVETVIEW.ROWFILTER DATAUTABLE. Cette méthode est efficace car DataTable est directement lié à DataGridView pour permettre le fonctionnement direct de ses données.
Scène 2: DataTable
Si la source de données de DataGridView est un Bindingsource et que la source de données de Bindingsource est une source de données, le filtre peut être effectué en modifiant la propriété Bindingsource.filter. Cette méthode est efficace car Bindingsource agit comme un intermédiaire entre DataTable et DataGridView, permettant le filtrage sans modifier DataTable lui-même. Scénario 3: DatameAtable est lié à DataSet
Lorsque la source de données de DataGridView est un ensemble de données et que le Record DataMe est défini sur le nom de données, le filtre devient plus compliqué. La principale différence est que DataGridView n'est pas directement lié à DataTable, mais la liaison DataTable à l'ensemble de données.
Les raisons de l'échec du filtrage dans la scène de la scène
Dans ce cas, essayez le filtrageNe pas mettre à jour DataGridView, car DataGridView n'est pas directement lié à DataTable. Il est lié à l'ensemble de données et à DataMember. La modification de DefauuultView de DataTable ne sera pas reflétée dans DataGridView car DataGridView ne réalise pas le changement.
Solution: filtrez DataView et liez-le à DataGridView
Pour résoudre ce problème, créez un dataView basé sur DataTable, appliquez le filtre à DataView et définissez la source de données de DataGridView à DataView. Cette méthode conserve l'ensemble de données d'origine et permet le filtrage sans modifier DataGridView de DataGridView.
ds.Tables[0].DefaultView.RowFilter
Exemple de code
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!