Linq Data「オブジェクトリスト」にバインドされたグリッドで作業しています。
グリッドは「切断された方法」で動作します。これは、行を編集または抑制しても、変更がデータベースにすぐに送信されないことを意味します。DataContext.SubmitChanges メソッドを呼び出すためにすべての変更が行われた後にクリックされる別の「保存」ボタンがあります。
問題は、グリッド内の行を削除すると、deleteonsubmit メソッドが適切に呼び出されますが、直後にグリッドを再バインドすると、行はまだここにあります!
データテーブルがグリッドにバインドされている場合、削除状態の行が表示されないデータテーブルのような動作が必要です。これは可能ですか?
補遺
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
@マグナス
あなたは私の問題を理解していませんでした。保存ボタンがクリックされたときに SubmitChanges を呼び出すと、変更がうまく反映されます。問題はここではありません。
問題は、グリッド内の行を削除すると、deleteonsubmit メソッドが適切に呼び出されますが、直後にグリッドを再バインドすると、行はまだここにあります! 通常、変更をデータベースにまだ送信していなくても、削除されたオブジェクトは GridView に行として表示されません。