将datagrid过滤为绑定到另一个数据源的bindingNavigator返回的值

时间:2014-05-09 18:32:27

标签: c# data-binding mdf

我有一个带有绑定到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字段上过滤数据网格。希望这是有道理的。

1 个答案:

答案 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); //? 
    }