c# winform datagridview界面上的行删了,但datagridview数据源没有同步如何解决
现在只能把它由((DataTable)datagridview1.DataSource).Rows.RemoveAt(rowNo);改在datagridview1.Row...
现在只能把它由((DataTable)datagridview1.DataSource).Rows.RemoveAt(rowNo);
改在 datagridview1.Rows.RemoveAt(rowNo);
但这样做,对datagridview的操作有时会报错,也就是说,它的绑定的源和datagridview界面显示的会不同步,如何让它能同步起来:
(注意:A删除 DataGridView 中的行 但它绑定的 DataTable 没有删除,
但 反过来 B删除 它绑定的 DataTable 居然可以自动将DataGridView界面上的行也删除,这个就是它的一个特性了)但现在想A的也自动同步如何解决 展开
改在 datagridview1.Rows.RemoveAt(rowNo);
但这样做,对datagridview的操作有时会报错,也就是说,它的绑定的源和datagridview界面显示的会不同步,如何让它能同步起来:
(注意:A删除 DataGridView 中的行 但它绑定的 DataTable 没有删除,
但 反过来 B删除 它绑定的 DataTable 居然可以自动将DataGridView界面上的行也删除,这个就是它的一个特性了)但现在想A的也自动同步如何解决 展开
4个回答
2013-11-20
展开全部
这样一定会报错的,因为datagridview在绑定了数据源之后是不允许再直接对行或列进行删除、新增的操作,它会认为你在非法修改数据源。(一般这样的操作只适用于逐条去赋值的datagridview)
所以这里想要实现你想要的结果,只有去修改数据源,即(DataTable)datagridview1.DataSource,然后再重新绑定DataSource,即datagridview1.DataSource=((DataTable)datagridview1.DataSource).Rows.RemoveAt(rowNo);
所以这里想要实现你想要的结果,只有去修改数据源,即(DataTable)datagridview1.DataSource,然后再重新绑定DataSource,即datagridview1.DataSource=((DataTable)datagridview1.DataSource).Rows.RemoveAt(rowNo);
展开全部
datagridview1.Rows.RemoveAt(rowNo);只是删除datagridview的一行,你没有写对应的删除绑定源的代码,当然两者不会同步。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
datagridview1只是用来显示数据,你在这上面进行增删改等操作不会影响数据源DataTable,除非你在对datagridview1增加时增加代码,对数据源DataTable也增删改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有什么需求使你认为必须删界面而不是数据源?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询