GridControl编辑后如何保存数据
展开全部
我们为了程序的美观,编辑数据的方便,常常使用GridControl来格式化显示数据,并编辑数据后能直接保存数据。
在经过大量的失败经历后,我发现了一些需要注意的地方。
GridControl在编辑数据后如果能使数据更新到DataTable中,却存在问题,这样就导致程序会报错提示字段为空。在GridControl
编辑状态下,GridColumn自动将状态置为BeginEdit,按Enter后,自动完成编辑EndEdit。如果你直接点击保存,发送命令
Update必然提示字段为空。在这种情况下需要先对当前编辑的视图进行关闭编辑,然后
才能保存数据。
this
.gridView.CloseEditor();this
.gridView.UpdateCurrentRow();
接下来就是微软的事了。if
(ds.HasChanges()){DataSetdsModify=this
.ds.GetChanges();if(dsModify!=null){this
.adapter.Update(dsModify.Tables[0]);this
.ds.AcceptChanges();
MessageBox.Show("保存成功.","提示",
MessageBoxButtons.OK,MessageBoxIcon.Information);}}为了好区分行,我们常见的做法是每间隔一行就更换一种底色的方式用于显示数据。
this
.gridView.OptionsPrint.EnableAppearanceEvenRow=true;this
.gridView.OptionsPrint.EnableAppearanceOddRow=true;删除数据。很多人都在问,我选择了一行数据,要删除它,但是怎么都得不到它的行号,怎么办,有没有想PB里类似GetRow的函数。呵呵,微软没有,GridControl好像也没有(如果哪位大侠知道,请告诉我)。我们只好变通一下,微软提供了一个BindingSource类和BindingNavigate类,在BindingNavigate类中有一个Position的属性就提供了当前
DataTable的行号。
this
.bindingSource1.DataSource=ds.Tables["table"
].DefaultView;this
.bindingNavigator1.BindingSource=this
.bindingSource1;this
.gridControl.DataSource=this
这样我能就能简单的使用GridControl来编辑数据了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询