日期:2014-05-20  浏览次数:20415 次

DataGrid和datatable数据绑定问题
我有一个DataGrid   dg,绑定的数据源是一个datatable   dt,现在我想删除dg的一行,同时删除dt中的相应行,重新绑定来实现删除后的刷新

由于dt的来源有很多,指的是根据不同的查询条件会得到不同的结果,查询的数据库中的表是固定的,所以不能从dt的来源上着手,只能从dt上着手,而用户可以对dg中的每一列进行排序,所以无法根据dg中选中行索引来得到它在dt中的索引

可能需要通过主键来找到相应的行,请大家分表为单一主键和联合主键两种情况给出解决办法,多谢
例如我一个页面中dg的数据来源为表A,主键为id
另一个页面中dg的数据来源为表B,主键为uid,gid,name

------解决方案--------------------
单一主键就不用讲了.根据DataKeys[索引]去删除dt的数据 联合主键可以这样 dt.Columns.Add( "keyId ", typeof(string), "uid+ ', '+gid "); 然后绑定. 指定DataKeyField = "keyId "; 删除时先取出key值,然后用, 分成两个值.然后根据两个字段值去删除dt的数据.
------解决方案--------------------
cpp2017(慕白兄)
正解