0

我是编程新手,并尝试使用 MS Access DB 2010 使用 C# 2010 Express 开发数据库应用程序。

我在表单上通过向导生成了 DataGridView 和 Detail 视图。我正在使用文本框的 TextChanged 事件过滤数据。

当我浏览记录时,datagridview 也会根据详细视图上的当前记录滚动,反之亦然。

在应用和删除过滤后,此导航行为根本不起作用(即 datagridview 不再根据详细视图中的当前记录滚动)。

任何帮助,将不胜感激。

谢谢。

这是我用于过滤数据的代码(FilterField 来自单选按钮的 Tag 属性):

DataView dv = new DataView(personel_csDataSet.Tables["tblData"]);
dv.RowFilter = FilterField + " like '%' + '" + tbFilter.Text + "' + '%' ";
this.tblDataDataGridView.DataSource = dv;
tblDataBindingSource.Filter = FilterField + " like '%' + '" + tbFilter.Text + "' + '%' ";
4

1 回答 1

0

那是因为您为网格和详细信息视图设置了不同的数据源。如果 tblDataBindingSource 是详细视图的数据源,请将其指定为网格的数据源,并且不要创建另一个视图:

this.tblDataDataGridView.DataSource = tblDataBindingSource;
tblDataBindingSource.Filter = FilterField + "like '%' + '" + tbFilter.Text + "' + '%' ";

顺便说一句,您不必在那里精确地分配数据源。您可以在开始时执行此操作,而无需在应用过滤器后重新分配它。

于 2012-07-18T07:44:22.193 回答