从devexpress gridview获取过滤行c#

时间:2016-09-08 07:10:04

标签: c# gridview datagridview devexpress devexpress-windows-ui

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

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

该输出值为List<DAViewMTO>。因此,我的用户可以过滤GridView中的数据,我只需要用户过滤的数据。

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

的列表中

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用两种方法从GridView获取过滤的行。

  1. 第一个是遍历所有可见的行,从0到GridView的RowCount,通过GetVisibleRowHandle方法从可见索引获取行句柄,得到行&#39;通过GetRow方法的底层对象,并将这些行插入到不同的IList中。
  2. 第二种方法是使用GridView的DataController.GetAllFilteredAndSortedRows()方法。此方法返回当前排序顺序中当前可见行的IList。
  3. 参考文献:
    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?

    如果您没有找到实现方法,那么请通过文档获取正确的方法来获取数据。

    希望这有帮助..

答案 1 :(得分:1)

使用此:

 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();