我有一个带有绑定到bindingNavigator的DataSource的表单。此DataSet包含一个唯一的ID,我想使用它(当导航到另一个记录时)来过滤第二个数据集并用数据网格填充。
我正在使用mdf文件db,并在数据库浏览器窗口中设置了连接。然后在数据源窗口中,我有2个DataSet,1个产生唯一ID,1个需要对该id进行过滤。
如何在第一个列中过滤第二个DataSet(以及绑定的DataGrid)?
编辑: 由于绑定是通过GUI完成的,因此代码不多。 这是表单加载事件
private void frmS26_Load(object sender, EventArgs e)
{
this.accountMonthsTableAdapter.Fill(this.dsAccountMonths.accountMonths);
}
此DataSet中包含uniqueId。
编辑2: 如果我解释我的意思,它可能会有所帮助。我有一个事务表,每个记录包含一个名为month_id的字段。 Month_id是另一个表(accountMonths)中的unqiue主键(名为id)。 bindingNavigator设置为accountMonths DataSet(每个记录是一个日历月)。在导航器中选择月份后,应根据导航器的ID在month_id字段上过滤数据网格。希望这是有道理的。
答案 0 :(得分:0)
您可以使用BindingSource_CurrentChanged事件方法(当您使用bindingNavigator导航时触发),在那里您可以使用绑定源的当前对象并获取其ID,根据该ID可以过滤您的其他数据源。
private void xBindingSource_CurrentChanged(object sender, EventArgs e)
{
DataRow dr = (xBindingSource.Current as DataRowView).Row;
int id=dr["id"]
FilterOtherDataSource(id); //?
}