当前位置:编程学习 > C#/ASP.NET >>

DataGridView如何通过唯一值快速定位行?

C#2.0

情况:dgv的数据源绑定了一个dt(DataTable),dgv允许排序,dt有一个主键列col。
问题:如何根据col中的某个值快速找到dgv中的对应行?

注:
-所谓快速就是不允许遍历dgv
-由于允许用户自行排序,所以col列不一定都在Sort中,所以dt.DefaultView.Find()方法不能用
-通过BindingSource在dgv与dt间做桥梁的办法也排除,我现在用的就这招,就是想知道离开BindingSource的情况下,有什么好办法 --------------------编程问答-------------------- 对grid排序同时,是否可以维护 一个内存数据(甚至可以绑定的datatable),同步排序,这样只需找到内存数据中的索引,就可以直接根据下标找到row了 --------------------编程问答-------------------- 之前接触一种这样情况的。
用鼠标定位到某一行,然后取该行的primarykey值来进行定位处理 --------------------编程问答-------------------- http://download.csdn.net/detail/unicorn_dsx/2866397
看一下,这个DEMO --------------------编程问答-------------------- 创建一个
Dictionary<DataRow,DataGridViewRow>
或则
Dictionary<primarykey,DataGridViewRow>
--------------------编程问答-------------------- 这个快速排序法 就可以吧?? --------------------编程问答--------------------
引用 3 楼  的回复:
http://download.csdn.net/detail/unicorn_dsx/2866397
看一下,这个DEMO


DEMO暂时没时间看,谢谢推荐。

至于prolee750607兄的办法,可是可行,但是往Dictionary填充数据的过程也得遍历一次,虽然是一劳永逸,但我就是连这么一次都舍不得~呵呵 --------------------编程问答-------------------- foreverwoyou的情况直接取dgv.CurrentRow就行了,不适用这个问题;

unicorn_dsx推荐的DEMO暂时没时间看;

prolee750607的办法可是可行,但是往Dictionary填充数据的过程也得遍历一次,虽然是一劳永逸,但我是连这么一次都舍不得~呵呵 --------------------编程问答-------------------- foreverwoyou的情况直接取dgv.CurrentRow就行了,不适用这个问题;

unicorn_dsx推荐的DEMO暂时没时间看;

prolee750607的办法可是可行,但是往Dictionary填充数据的过程也得遍历一次,虽然是一劳永逸,但我是连这么一次都舍不得~呵呵
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,