Maison > développement back-end > C++ > Comment filtrer un DataGridView lié à un DataSet sans changer sa DataSource ?

Comment filtrer un DataGridView lié à un DataSet sans changer sa DataSource ?

Linda Hamilton
Libérer: 2025-01-25 09:56:12
original
493 Les gens l'ont consulté

How to Filter a DataGridView Bound to a DataSet without Changing its DataSource?

Filtrage DataGridView efficace avec DataSet : une approche DataTable directe

Filtrer un DataGridView lié à un DataTable au sein d'un DataSet présente un défi unique. Contrairement aux scénarios dans lesquels le DataTable est directement lié ou où un BindingSource est utilisé, la simple modification de la propriété RowFilter du DataTable n'actualise pas automatiquement l'affichage du DataGridView.

Cette limitation provient de la façon dont DataGridView gère les DataSets. Lorsque le DataSource est un DataSet, la propriété DataMember détermine quel DataTable est affiché. Modifier le RowFilter d'un DataTable non spécifié par DataMember n'a aucun effet visible sur la grille.

La solution consiste à accéder et à manipuler directement le bon DataTable :

<code class="language-csharp">private void textBox1_TextChanged(object sender, EventArgs e)
{
    DataSet ds = (DataSet)dataGridView1.DataSource;
    DataTable dt = ds.Tables[dataGridView1.DataMember];

    dt.DefaultView.RowFilter = string.Format("country LIKE '%{0}%'", textBox1.Text);
}</code>
Copier après la connexion

Cet extrait de code récupère le DataTable actif à l'aide de la propriété DataMember de DataGridView, puis applique le filtre à son DefaultView. Cela met directement à jour l'affichage du DataGridView sans nécessiter de modification de la propriété DataSource.

Essentiellement, cette méthode évite les exceptions qui pourraient survenir lors d'une tentative de refonte du DataSource en un DataSet, garantissant ainsi la compatibilité avec le code existant.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal