1.第一種方法:
if (gridView1.ActiveFilterCriteria != null)
{
var filteredDataView = new DataView(gridControl1.DataSource as DataTable);
filteredDataView.RowFilter =
DevExpress.Data.Filtering.CriteriaToWhereClauseHelper.GetDataSetWhere(gridView1.ActiveFilterCriteria);
var filterRecords = filteredDataView.ToTable();
for (int i = 0; i < filterRecords.Rows.Count; i++)
{
}
}
2.第二種方法
DevExpress 的GridView竟然提供了相應的方法,但是奇怪的是編譯器竟然沒有顯示,就是在GridView的基類BaseView中提供了DataController這個對象,查看了這個屬性后發現竟然真的被屏蔽了,EditorBrowsable竟然是Never狀態(我也表示一臉懵逼)
當然,屏蔽了,不代表他沒有這個屬性,那就一臉懵逼的使用吧,DataController提供一個獲取過濾后和排序后的數據集的方法:GetAllFilteredAndSortedRows()
為了不每次都懵逼的去這樣直接調用,最好還是寫一個公用方法去調用吧
public System.Collections.IList GetGridViewFilteredAndSortedData(DevExpress.XtraGrid.Views.Grid.GridView view)
{
return view.DataController.GetAllFilteredAndSortedRows();
}