【问题标题】:Get filtered rows from devexpress gridview c#从devexpress gridview c#中获取过滤后的行
【发布时间】:2016-09-08 07:10:03
【问题描述】:

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

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

其输出值为List&lt;DAViewMTO&gt;。所以我的用户能够过滤GridView 中的数据,我只需要我的用户过滤的数据。

所以我需要将这些数据(已过滤)移动到另一个类型为List&lt;DAViewMTO&gt; 的列表中

我该怎么做?

【问题讨论】:

  • 嗨 @Ehsan,请浏览这些 "xtragrid get filtered rows" 搜索结果,以从他们论坛上询问的 DevExpress 线程中获取参考。

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


【解决方案1】:

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

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

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

希望对您有所帮助..

【讨论】:

  • 在您的参考资料中我发现了这个:devexpress.com/Support/Center/Question/Details/Q303908,但 ColumnView 到底是什么?
  • ColumnView 是 GridView 的基类,如果您拖放网格控件,通常在 Designer 类中创建。网格控件有不同的视图,因此请阅读文档以了解更多信息。 . 很高兴你找到了答案.. :)
【解决方案2】:

使用这个:

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

【讨论】:

  • 如果需要,列视图的命名空间是 DevExpress.XtraGrid.Views.Base.ColumnView
猜你喜欢
  • 1970-01-01
  • 2015-02-14
  • 1970-01-01
  • 2012-12-17
  • 2012-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多