DataGrid如何定位到修改了的那一行

ljlsucfe 2005-01-19 09:21:58
在一个DataGrid中,如果我用代码修改了某一行的值,那么如何使当前选中的行为我刚刚修改了的这一行呢?请大家指点一下:
DataRow RowFind=DataSet1.Tables[0].Rows.Find("001");
if (RowFind!=null)
{
//找到了
int NumTemp=int.Parse(RowFind[1].ToString());
RowFind[1]=NumTemp+2;
//这里定位到修改了的那一行

}
else
{
myTable.Rows.Add(myRow);
//这里定位到最后一行
DG.CurrentRowIndex=DataSet1.Tables[0].Rows.Count-1;
}
...全文
361 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
bomberwu 2005-01-26
  • 打赏
  • 举报
回复
DataGridCell currentCell=dataGrid1.CurrentCell;
行=currentCell.RowNumber;
列=currentCell.ColumnNumber
sywcf 2005-01-23
  • 打赏
  • 举报
回复
收藏
hamadou 2005-01-20
  • 打赏
  • 举报
回复
新增后,难道不刷新显示吗,刷新后得到的最新的datatable肯定会变,那么,如何定位到刚刚新增的记录呢???????????
yangzhenhai 2005-01-19
  • 打赏
  • 举报
回复
datatable 是不排序的,所以这个行号没用.

用dataview的那个查找,他可以定位出datagrid的具体哪一行
ljlsucfe 2005-01-19
  • 打赏
  • 举报
回复
知道了他的属性有什么用吗?
如何用它的属性去定位呢?
fxf66 2005-01-19
  • 打赏
  • 举报
回复
哦,错了:)
不是Rows的属性,是Row的属性
DataRow RowFind=DataSet1.Tables[0].Rows.Find("001");
RowFind.RowState
fxf66 2005-01-19
  • 打赏
  • 举报
回复
帮你翻了一下书
DataSet1.Tables[0].Rows.RowState
有5种情况:为改变的;已修改过的;添加的;删除的;分离的
ljlsucfe 2005-01-19
  • 打赏
  • 举报
回复
怎么就没有人回答呢,大家来帮我顶一下啊,谢谢了!
ljlsucfe 2005-01-19
  • 打赏
  • 举报
回复
应该有办法的,请大家帮忙想想
nga96 2005-01-19
  • 打赏
  • 举报
回复
能做到这点么?考虑一下
YIO2002 2005-01-19
  • 打赏
  • 举报
回复
dataGrid1.CurrentRowIndex=2;
ljlsucfe 2005-01-19
  • 打赏
  • 举报
回复
用循环的方法当然不好了,用事件的话,如何得到当前记录的记录号啊?
另外,我是在PDA上使用DataGrid,所以要考虑到节约资源.
ljlsucfe 2005-01-19
  • 打赏
  • 举报
回复
谢谢各位,我用事件试一下,看方不方便实现,如果有什么好方法,请继续顶哟!
wupeng121 2005-01-19
  • 打赏
  • 举报
回复
在事件上就可以了
hamadou 2005-01-19
  • 打赏
  • 举报
回复
呵呵,我用一个笨方法遍历查找实现的,可能记录多的时候不太好!
'检索所有记录,确定新增记录在记录集中的位置并返回
‘参数分别为:要查找的id号,待查找的datatable
Public Function setrow(ByVal rowid As Integer, ByVal table As DataTable) As Integer
Dim rowcount As Integer
Dim i As Integer
Dim id As Integer
rowcount = table.Rows.Count
For i = 0 To rowcount - 1
id = table.Rows(i)(0)
If rowid = id Then
Return i
End If
Next
Return -1 '失败返回-1
End Function
这样,再让datagrid的selectindex=函数返回的值就可以了。
whyxx 2005-01-19
  • 打赏
  • 举报
回复
直接修改好像也会触发到cellChanged事件吧,到这个事件里应该能取到当前的行和列.
fsonly 2005-01-19
  • 打赏
  • 举报
回复
datagrid1.SelectIndex = dataSet.Table.Row
pingnt 2005-01-19
  • 打赏
  • 举报
回复
我也想知道
ljlsucfe 2005-01-19
  • 打赏
  • 举报
回复
那如果用DataGrid就没办法实现吗

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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