【发布时间】:2012-11-22 22:02:30
【问题描述】:
我正在使用绑定到 Linq 数据“对象列表”的网格。
网格以“断开连接的方式”运行,这意味着当我编辑或取消一行时,更改不会立即提交到数据库。在进行所有更改后单击一个单独的“保存”按钮以调用 DataContext.SubmitChanges 方法。
问题是当我删除网格中的一条线时,deleteonsubmit方法很好调用,但是当我刚刚重新绑定网格时,这条线仍然在这里!
我需要像 Datatables 这样的行为,当数据表绑定到网格时,不会显示处于 Deleted 状态的行。这可能吗?
附录
代码不多,因为 GridView 使用它的自动行为(AutoGenerateColumns、AutoGenerateEditButton 等)
这是我用来删除对象的代码
<DataObjectMethod(DataObjectMethodType.Delete)> _
Public Sub Supprimer(ByVal code As Integer)
Dim ctx = getDataContext()
Dim leGerant = (From g In ctx.Gerant Where g.CODE = code).FirstOrDefault
ctx.Gerant.DeleteOnSubmit(leGerant)
End Sub
这是我用来选择对象的代码
<DataObjectMethod(DataObjectMethodType.Select)> _
Public Function Selectionner()
Dim ctx = getDataContext()
Return From g In ctx.Gerant
End Function
@magnus
你没有理解我的问题。单击保存按钮时,我确实调用了 SubmitChanges,并且更改效果很好。问题不在这里。
问题是当我删除网格中的一条线时,deleteonsubmit方法很好调用,但是当我重新绑定网格时,这条线仍然在这里!通常,已删除的对象不应在 GridView 中显示为一行,即使我尚未将更改提交到数据库。
【问题讨论】:
-
这取决于您的代码...您没有向我们展示...
-
发布一些代码,以便它可以清除您的查询。
-
您必须致电
ctx.SubmitChanges()才能使更改生效。
标签: vb.net linq linq-to-sql datacontext