DataGridView和DataTable同步排序

当对绑定DataTable的DataGridView排序时,DataTable是用其维护的DataView或者DataViewManager实现排序逻辑的,并没有改变DataSource对应的DataTable,所以当我们要获取DataGridView中的排序时,比如用排序后的DataTable打印、导出,就必须常用附加逻辑。

代码如下

 1         /// <summary>
 2         /// 获取DataGridView绑定的包含排序状态的DataTable
 3         /// </summary>
 4         /// <param name="dgv">绑定DataTable的DataGridView</param>
 5         /// <returns>包含排序状态的DataTable</returns>
 6         public DataTable GetSortDataTable(DataGridView dgv)
 7         {
 8             DataView dv = (dgv.DataSource as DataTable).DefaultView;//得到DataView
 9             if (dgv.SortedColumn != null)//判断是否有排序
10             {
11                 dv.Sort = dgv.SortedColumn.DataPropertyName + (dgv.SortOrder == SortOrder.Ascending ? " asc" : " desc");//排序
12             }
13             return dv.ToTable();//返回DataTable
14         }

 

转载于:https://www.cnblogs.com/YangDengmeng/p/5132637.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值