DataGird中有没有可以捕捉datagrid的排序事件的?

lsfyfan 2002-06-27 10:25:33
DataGird中有没有可以捕捉datagrid的排序事件的? 比如什么resort之类的东西? 具体情况是这样的:
我想取出datagrid里currentrowindex的某一列的值. 一般我可以通过CurrentCellChange事件得到值, 但是当我在根据某一列重新排序的时候, 得到的值就不对了. 后来试过用CursorChange事件, 问题倒是解决了, 但是鼠标一移动就要触发该事件, 好像不是很好, 所以我想请教各位高手, 有没有更好的方法?
...全文
60 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mynewpc 2002-09-26
  • 打赏
  • 举报
回复
取某列的值不就是这样吗:DataGrid1.Item(Me.DataGrid1.CurrentRowIndex, i)
不懂你需要实现什么功能?
lsfyfan 2002-09-26
  • 打赏
  • 举报
回复
还是不行的.
mynewpc 2002-09-25
  • 打赏
  • 举报
回复
另外,你不需要使用dataGrid1.CurrentRowIndex,使用Me.BindingContext(数据集, 表).Position永远不会有那些问题.
mynewpc 2002-09-25
  • 打赏
  • 举报
回复
你不要把datagrid直接绑定到datatable上,绑定到它的defaultview上就没问题了,你试试看.
sheep2002 2002-06-29
  • 打赏
  • 举报
回复
我遇到了与你一样的问题,
上面的方法是不对的,
试一试MouseDown事件,比CursorChange能好一点吧.
你若有更好的方法,请告知,谢谢。
lsfyfan 2002-06-28
  • 打赏
  • 举报
回复
其实按照上面所说的, 我可以不用从dataset里取的可以从datagrid里取:
datagrid[currentRowIndex, 0].ToString();就可以了.
但是我想获得的是在排序的一瞬间, 那个值就不对了. 按照上述的方法的话, 也是要得出当前行的值的, 但是在排序的时候是不改变行的值的, 改变的只是行中某列的内容. 现在的问题就是怎么样来有一个事件来触发从而重新获得行中某列的内容.
sheep2002 2002-06-27
  • 打赏
  • 举报
回复
string filter="id=5";
System.Data.DataRow[] findRow;
findRow= s.Tables[0].Select(filter);
返回id=5的所有行,(id不是主建)
lsfyfan 2002-06-27
  • 打赏
  • 举报
回复
多谢楼上的指点, 但是假如要用那种方法的话, 我必须要在datatable里设个主键, 较麻烦, 有时候我需要在同一列中有相同的值. 还有没有更好的方法那?
sheep2002 2002-06-27
  • 打赏
  • 举报
回复
你是不是要得到datagrid排序后dataSet中的值?
若是,则,
不必捕捉datagrid的排序事件,
你可以这样得到值:

DataSet.Tables("myTable").Rows.Find
(dataGrid1[dataGrid1.CurrentRowIndex,0])

该语句返回dataSet中对应dataGrid当前行的行

其中,dataGrid1的第0列是主键

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧