关于怎样获取DevExpress GridView过滤后或排序后的数据集问题(转)
关于怎样获取DevExpress GridView过滤后或排序后的数据集问题(转)
</h2>
<div class="postbody">
GridView用自带的过滤功能过滤数据后,想要获取过滤后的数据集,有两种方式:
一、笨办法就是循环遍历GridView,根据gridView.GetRow()或者gridView.GetDataRow()(该方法返回DataRow类型,使用于数据源是DataTable)去获取指定handle对应的数据对象。
1、若GridControl绑定的数据源是List类型,可以调用以下方法
/// <summary>
/// 获取GridView过滤或排序后的数据集
/// </summary>
/// <typeparam name="T">泛型对象</typeparam>
/// <param name="view">GridView</param>
/// <returns></returns>
public IEnumerable<T> GetGridViewFilteredAndSortedData<T>(DevExpress.XtraGrid.Views.Grid.GridView view) where T : class
{
var list = new List<T>();
for (int i = 0; i < view.RowCount; i++)
{
if (view.IsGroupRow(i))
continue;
var entity = view.GetRow(i) as T;
if (entity == null)
continue;
list.Add(entity);
}
return list;
}
2、若GridControl绑定的数据源是DataTable类型,可以调用以下方法:
<pre name="code" class="csharp"> /// <summary>
/// 获取GridView过滤或排序后的数据集
/// </summary>
/// <param name="view">GridView</param>
/// <returns></returns>
public DataTable GetGridViewFilteredAndSortedDataToDataTable(DevExpress.XtraGrid.Views.Grid.GridView view)
{
DataTable _dt = view.GridControl.DataSource as DataTable;
if (_dt == null)
return null;
DataTable dt = _dt.Clone();
for (int i = 0; i < view.RowCount; i++)
{
if (view.IsGroupRow(i))
continue;
var dr = view.GetDataRow(i);
if (dr == null)
continue;
dt.Rows.Add(dr.ItemArray);
}
return dt;
}
第二种方法:估计大伙很难找到,DevExpress 的GridView竟然提供了相应的方法,但是奇怪的是编译器竟然没有显示,就是在GridView的基类BaseView中提供了DataController这个对象,查看了这个属性后发现竟然真的被屏蔽了,EditorBrowsable竟然是Never状态(我也表示一脸懵逼)
当然,屏蔽了,不代表他没有这个属性,那就一脸懵逼的使用吧,DataController提供一个获取过滤后和排序后的数据集的方法:GetAllFilteredAndSortedRows()
为了不每次都懵逼的去这样直接调用,最好还是写一个公用方法去调用吧
<pre name="code" class="csharp"> /// <summary>
/// 获取GridView过滤或排序后的数据集
/// </summary>
/// <param name="view"></param>
/// <returns></returns>
public System.Collections.IList GetGridViewFilteredAndSortedData(DevExpress.XtraGrid.Views.Grid.GridView view)
{
return view.DataController.GetAllFilteredAndSortedRows();
}
---------------------
作者:涛神-Dev
来源:CSDN
原文:https://blog.csdn.net/u012097590/article/details/52777437
版权声明:本文为博主原创文章,转载请附上博文链接!
<div id="blog_post_info">
<div class="clear"></div>
<div id="post_next_prev">
<a href="https://www.cnblogs.com/xihong2014/p/10757128.html" class="p_n_p_prefix">« </a> 上一篇: <a href="https://www.cnblogs.com/xihong2014/p/10757128.html" title="发布于 2019-04-23 16:20">devexpress gridview代码设置</a>
<br>
<a href="https://www.cnblogs.com/xihong2014/p/10783077.html" class="p_n_p_prefix">» </a> 下一篇: <a href="https://www.cnblogs.com/xihong2014/p/10783077.html" title="发布于 2019-04-28 11:46">日常系统维护日志查看</a>
posted on 2019-04-23 16:49 xihong 阅读(27) 评论(0) 编辑 收藏
</p>
</div>
· eBay维萨万事达等宣布退出天秤币计划
· 旅行者号传回的数据揭示太阳系边缘粒子互相作用产生巨大压力
· 拆解发现iPhone 11配置的U1芯片是苹果自己的设计
· “墨迹天气” 今日IPO上会,却意外挂了
· 中国科学家研制出微型“血栓探测器”
» 更多新闻...
2019-04-23 devexpress gridview代码设置
2019-04-23 DEVEXPRESS GRIDVIEW 代码添加按钮(转)
2019-04-23 DevExpress Grid使用checkBox选中的方法
2019-04-23 DevExpress gridview获取单元格坐标(转)
上一篇: 日常工作问题总结
下一篇: 华为2019秋招笔试题1
【活动】京东云服务器_云主机低于1折,低价高性能产品备战双11
【推荐】天翼云新用户专享,0元体验数十款云产品,立即开通
【活动】魔程社区技术沙龙—移动测试应用专场等你报名
【福利】学AI有奖:博客园&华为云 Modelarts 有奖训练营
· Dev中GridView筛选后的数据获取
· datatable与实体类之间相互转化的几种方法
· 关于怎样获取DevExpressGridView过滤后或排序后的数据集问题(转)
· mysql自增长主键,删除数据后,将主键顺序重新排序
· 前端vue单页面应用刷新网页后vuex的state数据丢失的解决方案(转载)