使用Winforms,vs2008。
我有一个datagridview绑定到附加到带数据表的数据集的bindingsouorce。
我希望能够在datagridview中编辑一行,当该行的编辑完成后,我想通过存储过程立即将数据写入数据库表。 (注意这是我必须通过调用存储过程的方式)。
我的问题是找到一个事件,当用户根据需要完成编辑行中的一个或多个单元格时,可以触发该事件。
永远不会在此网格中添加行,它们只会对现有行进行编辑或删除行。
我可以通过监视datagridview.rowleave事件来编写 我可以使用绑定源PositionChanged或当前项目更改事件。
问题是所有这些事件只有在离开正在编辑的当前行时才会触发。 当网格上只有一行数据或编辑网格的最后一行时,这是一个大问题。没有其中一个事件会被解雇,直到你离开这一行。
我该怎么办? 如何处理网格上的单行或编辑最后一行或删除一行。
任何建议表示赞赏。
感谢
答案 0 :(得分:1)
当您考虑准备保存行时,不要100%清除它。你说这是一个问题,当你离开当前行时你只会触发某些事件,但我不确定你还能在什么时候考虑完成编辑?
那就是说,我要看的两个事件是DataGridView RowValidated事件和CellEndEdit事件。
当对行的更改进行验证时会触发RowValidated - 通常在行离开时但不像BindingSource之类的某些事件PositionChanged,即使网格失去焦点,此事件也会触发。 (还有DataGridView Leave事件,但这可能不太正确。)
如果要在行中的数据发生更改时提交,则CellEndEdit事件可能是最佳的。