C# 如何在gridview中筛选devexpress lookupedit数据源

C# 如何在gridview中筛选devexpress lookupedit数据源,c#,devexpress,C#,Devexpress,我有一个包含4列的DevExpress网格视图。 第一列是一个存储库查找编辑,其中包含一些数据,比如说CarTypes。 第二列是带有Cars的存储库查找编辑。 第三个是带有用户注释的EditBox存储库 最后一列是删除行的简单按钮 当更改第一列的值时,我希望过滤每行的第二列数据。例如,当选择SUV时,我想在第二列存储库中仅显示CarType=SUV的汽车 有人能帮我解决这个问题吗?谢谢实现起来很简单。。对于组合框中不同行的不同值,要引入此功能,可以在显示编辑器后动态筛选基础查找数据源。这应该通

我有一个包含4列的DevExpress网格视图。 第一列是一个存储库查找编辑,其中包含一些数据,比如说CarTypes。 第二列是带有Cars的存储库查找编辑。 第三个是带有用户注释的EditBox存储库 最后一列是删除行的简单按钮

当更改第一列的值时,我希望过滤每行的第二列数据。例如,当选择SUV时,我想在第二列存储库中仅显示CarType=SUV的汽车


有人能帮我解决这个问题吗?谢谢

实现起来很简单。。对于组合框中不同行的不同值,要引入此功能,可以在显示编辑器后动态筛选基础查找数据源。这应该通过处理数据来完成

请阅读更详细地描述此方法的文章

参考文献:

实现起来很简单。。对于组合框中不同行的不同值,要引入此功能,可以在显示编辑器后动态筛选基础查找数据源。这应该通过处理数据来完成

请阅读更详细地描述此方法的文章

参考文献:

我从中找到了下面的代码,并且工作得非常完美

我使用了@NiranjanKala提议的
ShownEditor
事件。检查编辑的列是否正确,然后使用新数据源重新加载
存储库查找编辑数据源

private void myCarsGridView_ShownEditor(object sender, EventArgs e)
{
    try
    {
        ColumnView view = (ColumnView)sender;
        if (view.FocusedColumn.FieldName == "CarType.Id" && view.ActiveEditor is LookUpEdit)
        {
            LookUpEdit edit = (LookUpEdit)view.ActiveEditor;
            int carTypeId = (int)view.GetFocusedRowCellValue("CarType.Id");
            IList<Car> filteredCars = _controller.GetCarsByType(carTypeId);
            edit.Properties.DataSource = filteredCars;
        }
    }
    catch (System.Exception ex)
    {
        //Log
    }

}
private void myCarsGridView\u ShownEditor(对象发送方,事件参数e)
{
尝试
{
ColumnView视图=(ColumnView)发送方;
如果(view.FocusedColumn.FieldName==“CarType.Id”&&view.ActiveEditor为LookUpEdit)
{
LookUpEdit=(LookUpEdit)view.ActiveEditor;
int carTypeId=(int)view.GetFocusedRowCellValue(“CarType.Id”);
IList filteredCars=\u controller.GetCarsByType(carTypeId);
edit.Properties.DataSource=filteredCars;
}
}
catch(System.Exception-ex)
{
//日志
}
}
我从中找到了下面的代码,并且工作得非常完美

我使用了@NiranjanKala提议的
ShownEditor
事件。检查编辑的列是否正确,然后使用新数据源重新加载
存储库查找编辑数据源

private void myCarsGridView_ShownEditor(object sender, EventArgs e)
{
    try
    {
        ColumnView view = (ColumnView)sender;
        if (view.FocusedColumn.FieldName == "CarType.Id" && view.ActiveEditor is LookUpEdit)
        {
            LookUpEdit edit = (LookUpEdit)view.ActiveEditor;
            int carTypeId = (int)view.GetFocusedRowCellValue("CarType.Id");
            IList<Car> filteredCars = _controller.GetCarsByType(carTypeId);
            edit.Properties.DataSource = filteredCars;
        }
    }
    catch (System.Exception ex)
    {
        //Log
    }

}
private void myCarsGridView\u ShownEditor(对象发送方,事件参数e)
{
尝试
{
ColumnView视图=(ColumnView)发送方;
如果(view.FocusedColumn.FieldName==“CarType.Id”&&view.ActiveEditor为LookUpEdit)
{
LookUpEdit=(LookUpEdit)view.ActiveEditor;
int carTypeId=(int)view.GetFocusedRowCellValue(“CarType.Id”);
IList filteredCars=\u controller.GetCarsByType(carTypeId);
edit.Properties.DataSource=filteredCars;
}
}
catch(System.Exception-ex)
{
//日志
}
}

您没有提供太多细节,也没有显示任何实现。此示例代码只是为了实现idea。。很好,你已经解决了你的问题。享受。。网格控件具有不同的视图,因此需要在特定视图中强制转换。您没有提供太多详细信息,也没有显示任何实现。此示例代码只是为了实现idea。。很好,你已经解决了你的问题。享受。。网格控件具有不同的视图,因此需要在特定视图中强制转换。。