BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / dot-net / #3310同步于 2011/9/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖

DataGridView数据修改问题

FadeToBlack
2011/9/13镜像同步7 回复
在DataGridView中设置了AllowUserToAddRows=true,期望用户在修改了最下面一行的数据后DGV会自动增加一个新行。 但在使用程序修改数据时,有时数据修改了却并没有自动增加新行。 测试程序是,在DGV中添加四列:ButtonColumn NameColumn ValueColumn(readonly) CommentColumn DummyColumn,在点击ButtonCell时会修改NameColumn和ValueColumn的值。按钮的相应函数如下:(工程见附件) private void DGV_CellContentClick(object sender, DataGridViewCellEventArgs e) { var row = DGV.Rows[e.RowIndex]; DGV.BeginEdit(false); { DGV.CurrentCell = row.Cells["NameColumn"]; DGV.CurrentCell.Value = "AAAA"; DGV.RefreshEdit(); if (!DGV.CurrentCell.ReadOnly) DGV.NotifyCurrentCellDirty(true); DGV.CurrentCell = row.Cells["ValueColumn"]; DGV.CurrentCell.Value = "BBBB"; DGV.RefreshEdit(); if (!DGV.CurrentCell.ReadOnly) DGV.NotifyCurrentCellDirty(true); } DGV.EndEdit(); DGV.CurrentCell = null; } 在第一次点击CellButton,第一行Name和Value会被修改并且DGV中自动加上第二行;不要修改第一行中数据,直接点击第二行中的CellButton,第二行的数据更新了,但却没有加入第三行。 同样的代码放在DGV外的button中却能一直按照期望工作,这是为什么?求解答,thx! 附件(19.4KB) DataGridViewTest.zip
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
wangjianzhou机器人#1 · 2011/9/14
【 在 FadeToBlack 的大作中提到: 】 : 在DataGridView中设置了AllowUserToAddRows=true,期望用户在修改了最下面一行的数据后DGV会自动增加一个新行。 : 但在使用程序修改数据时,有时数据修改了却并没有自动增加新行。 : 测试程序是,在DGV中添加四列:ButtonColumn NameColumn ValueColumn(readonly) CommentColumn DummyColumn,在点击ButtonCell时会修改NameColumn和ValueColumn的值。按钮的相应函数如下:(工程见附件) : ................... 页面生命周期,修改的数据回传到服务器端清除已经生成的新行。
FadeToBlack机器人#2 · 2011/9/14
什么意思?能详细点说吗? 【 在 wangjianzhou 的大作中提到: 】 : : 在DataGridView中设置了AllowUserToAddRows=true,期望用户在修改了最下面一行的数据后DGV会自动增加一个新行。 : : 但在使用程序修改数据时,有时数据修改了却并没有自动增加新行。 : : 测试程序是,在DGV中添加四列:ButtonColumn NameColumn ValueColumn(readonly) CommentColumn DummyColumn,在点击ButtonCell时会修改NameColumn和ValueColumn的值。按钮的相应函数如下:(工程见附件) : ...................
whui机器人#3 · 2011/9/14
1楼说得没道理,这个是桌面程序,不是asp.net。和生存周期啥的没关系
wangjianzhou机器人#4 · 2011/9/14
【 在 FadeToBlack 的大作中提到: 】 : 什么意思?能详细点说吗? : 【 在 wangjianzhou 的大作中提到: 】 : : : 在DataGridView中设置了AllowUserToAddRows=true,期望用户在修改了最下面一行的数据后DGV会自动增加一个新行。 : ................... 不好意思,您是winform,我说的是ASP.NET,您可以打上断点调试下,多点几次,看新的行代码生成了没?
mmgroup机器人#5 · 2011/9/14
在数据还没提交的时候新生成的按钮事件代码点击会被执行么?总怀疑不会...
Anti2005机器人#6 · 2011/9/14
你要是非得这么整,通过人工的方式来实现,按照自己的逻辑来处理,手工添加新行。 但是我有一点不明白,不用第一行的话,就是你所要的效果,你添加第一行的Button列是为了什么?
FadeToBlack机器人#7 · 2011/9/15
你说的是第一列的button吧,那个是用来配置一些特定单元格的数据 anyway,通过重写DGV的AllowUserToAddRows的功能实现了需求,但还是不明白DGV这种设计方法究竟是在做什么 【 在 Anti2005 的大作中提到: 】 : 你要是非得这么整,通过人工的方式来实现,按照自己的逻辑来处理,手工添加新行。 : 但是我有一点不明白,不用第一行的话,就是你所要的效果,你添加第一行的Button列是为了什么? : -- : ...................