将数据网格筛选为绑定到另一个数据源的bindingNavigator返回的值

本文关键字:数据源 另一个 bindingNavigator 返回 绑定 数据网 数据 网格 筛选 | 更新日期: 2023-09-27 18:02:32

我有一个表单,它的数据源绑定到一个bindingNavigator。这个数据集包含一个唯一的id,我想使用它(当导航到另一个记录时)来过滤第二个数据集并填充一个数据网格。

我使用的是mdf文件db,在数据库资源管理器窗口中设置了连接。然后在数据源窗口中,我有2个数据集,1个产生唯一id,另一个需要对该id进行过滤。

如何在第一个列上过滤第二个数据集(和绑定的DataGrid) ?

编辑:没有太多代码,因为绑定是通过GUI完成的。下面是form load事件

    private void frmS26_Load(object sender, EventArgs e)
    {
        this.accountMonthsTableAdapter.Fill(this.dsAccountMonths.accountMonths);
    }

这个数据集有唯一的id。

编辑2:如果我解释一下我在找什么,可能会有帮助。我有一个事务表,每个记录包含一个名为month_id的字段。Month_id是另一个表(accountMonths)中的唯一主键(命名为id)。bindingNavigator设置为accountMonths数据集(每条记录都是一个日历月)。由于在导航器中选择了月份,因此应该根据导航器的id在month_id字段上过滤数据网格。

将数据网格筛选为绑定到另一个数据源的bindingNavigator返回的值

您可以使用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); //? 
    }