ホームページ > バックエンド開発 > C++ > データソースを変更せずにデータセットにバインドされたデータグリッドビューをフィルタリングする方法は?

データソースを変更せずにデータセットにバインドされたデータグリッドビューをフィルタリングする方法は?

Linda Hamilton
リリース: 2025-01-25 09:56:12
オリジナル
493 人が閲覧しました

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

DataSet を使用した効率的な DataGridView フィルタリング: DataTable への直接的なアプローチ

DataSet 内の DataTable にリンクされた DataGridView をフィルタリングすると、独特の課題が生じます。 DataTable が直接バインドされているシナリオや BindingSource が使用されているシナリオとは異なり、DataTable の RowFilter プロパティを変更するだけでは、DataGridView の表示は自動的に更新されません。

この制限は、DataGridView が DataSet を処理する方法に起因します。 DataSource が DataSet の場合、DataMember プロパティによってどの DataTable が表示されるかが決まります。 RowFilter で指定されていない DataTable の DataMember を変更しても、グリッドには目に見える影響はありません。

この解決策には、正しい 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>
ログイン後にコピー

このコード スニペットは、DataGridView の DataMember プロパティを使用してアクティブな DataTable を取得し、フィルターをその DefaultView に適用します。 これにより、DataSource プロパティを変更することなく、DataGridView の表示が直接更新されます。

重要なのは、このメソッドは、DataSource を DataSet に再キャストしようとするときに発生する可能性のある例外を回避し、既存のコードとの互換性を確保することです。

以上がデータソースを変更せずにデータセットにバインドされたデータグリッドビューをフィルタリングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート