从 devexpress gridview c# 获取过滤行

Get filtered rows from devexpress gridview c#

我在我的 C# 应用程序中使用 devexpress GridView。所以我像这样初始化我的 GridView

gridControl.DataSource = new BindingList<ViewDomainClass.MaterialOffice.DAViewMTO>(_materialRepository.ViewMTOByDetail())

那个的输出值是List<DAViewMTO>。所以我的用户能够过滤 GridView 中的数据,而我只需要我的用户过滤的数据。

所以我需要将这些数据(已过滤)移动到另一个 List<DAViewMTO>

类型的列表

我该怎么做?

您可以使用两种方法从 GridView 中获取筛选行。

  1. 第一个是遍历从0到GridView的RowCount, get row handles from visible indices via the GetVisibleRowHandle方法的所有可见行,通过GetRow方法获取行的底层对象,将这些行插入到不同的IList中。
  2. 第二种方法是使用 GridView 的 DataController.GetAllFilteredAndSortedRows() 方法。此方法 returns IList 当前可见行的当前排序顺序。

参考文献:
Getting Filtered Rows
How to get filtered rows
XtraGrid GridView : How to get the filtered rows - 如果数据源是数据表
how to get the xtragrid filtered and sorted datasource?

如果您没有找到实现此方法的方法,请查阅文档以获取正确的方法来获取数据。

希望对您有所帮助..

使用这个:

 public static List<T> GetFilteredData<T>(ColumnView view)
        {
            List<T> resp = new List<T>();
            for (int i = 0; i < view.DataRowCount; i++)
                resp.Add((T)view.GetRow(i));

            return resp;
        }

然后这样调用:

ColumnView View = gridControl.MainView as ColumnView;
    List<DAViewMTO> mydata= GetFilteredData<DAViewMTO>(View).ToList();