请问高手,DataGrid中的数据改动不能反映,怎么办

2002pine 2002-12-09 12:10:48
我在WinForm的tabpage页中有一DataGrid,我在tabpage_validating事件中,要根据datagrid中的数据,是否改动,询问是否保存,但有一个问题,是我如果从直接修改的cell中去按别的tabpage,触发的tabpage_validating中,取出来的数据,无论是从表中,还是从DataGrid中取出来的数据,都是未改动前的,或用datatable.getChange(),为空。
如果我把Mouse移动到下一行,那么不会出现这种情况。
如果我按Tabpge上的按钮,也不会出现上面的情况;
请教高手,怎样解决?
...全文
154 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Keyln 2002-12-11
  • 打赏
  • 举报
回复
我是通過另外一個button觸發的。
DataTable dt=ds.Tables ["user_cc"];
int i;
for(i=0;i<ds.Tables["user_cc"].Rows.Count
;i++)
{
dt.Rows[i]["xx"]=this.dataGrid1[i,2];
dt.Rows[i]["ww"]=this.dataGrid1 [i,3];
dt.Rows [i]["yy"]=this.dataGrid1[i,4];
dt.Rows [i]["qq"]=this.dataGrid1 [i,5];
}
thisdaad.Update (ds,"user_cc");
但很怪的是最后一次動做不能更新。不知為什么。。。(比如我同時改變兩個cell值﹐但最后一個不能保存到數據庫中﹐真奇怪)。
2002pine 2002-12-11
  • 打赏
  • 举报
回复
好,谢谢两位,现在已可以了,结贴
andyjia 2002-12-11
  • 打赏
  • 举报
回复
private void tabPage_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
this.BindingContext[gridDs,"FunctionProperty"].EndCurrentEdit();
\\这里还要写一些代码判断当前单元格是0,0的情况
DataGridCell c=new DataGridCell(0,0);
dataGrid1.CurrentCell=c;
DataTable dt=ds.Tables[0].GetChanges();
}
2002pine 2002-12-11
  • 打赏
  • 举报
回复
谢谢,你的办法对我有帮助,但有一个问题就是只有一行,或焦点在第一行,就不行了,请问有没有办法?
dy_2000_abc 2002-12-10
  • 打赏
  • 举报
回复
我试了一下,没有什么好办法,在tabpage_validating时DataGridColumnStyle没有向数据源提交编辑结果,只能用下面的办法将就一下了。
private void tabPage_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
\\这里还要写一些代码判断当前单元格是0,0的情况
DataGridCell c=new DataGridCell(0,0);
dataGrid1.CurrentCell=c;
DataTable dt=ds.Tables[0].GetChanges();
}

110,536

社区成员

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

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

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