penapisan datagridview yang cekap dengan dataset: Pendekatan Data Data Langsung
Penapisan DataGridView yang dikaitkan dengan datatible dalam dataset memberikan cabaran yang unik. Tidak seperti senario di mana datatible terikat secara langsung atau bindingsource digunakan, hanya mengubah harta Batasan ini berpunca dari bagaimana datagridView mengendalikan dataset. Apabila RowFilter
adalah dataset, harta
data yang tidak ditentukan oleh DataSource
tidak mempunyai kesan yang jelas pada grid. DataMember
RowFilter
Penyelesaian ini melibatkan secara langsung mengakses dan memanipulasi data yang betul: DataMember
Coretan Kod ini mengambil semula DataTable aktif menggunakan harta DataGridView
dan kemudian menggunakan penapis ke<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>
DataMember
secara penting, kaedah ini mengelakkan pengecualian yang mungkin timbul daripada cuba mengulangi DefaultView
kembali ke dataset, memastikan keserasian dengan kod sedia ada. DataSource
Atas ialah kandungan terperinci Bagaimana cara menapis datagridview terikat ke dataset tanpa menukar sumber data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!