- PR -

DataGridの行の削除

1
投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2004/11/24
投稿数: 25
投稿日時: 2006-11-08 15:55
現在、データグリッドの行の削除を禁止しており、
行を選択し、削除ボタンを押下時に、
選択行をデータベースより削除し、再表示を行っているのですが、
再表示を行わずに、データベース削除後、グリッド上選択行のみ削除された
状態で表示したいのですが、できるでしょうか?

現在↓のようなコードでやってみてるのですが、
エラーになってしまいます。エラーMSG「テーブル0が見つかりません。」
このやりかたが合ってるのかわかりませんが。。

Dim dstMain As New DataSet()
Dim cm As CurrencyManager
cm = CType(Me.BindingContext(DataGrid1.DataSource), CurrencyManager)
Dim dv As DataView = CType(cm.List, DataView)
dv.AllowDelete = True
dstMain.Tables(0).Rows(Me.DataGrid1.CurrentRowIndex).Delete() ←☆エラー箇所
'データグリッドに再表示
Me.DataGrid1.SetDataBinding(dstMain, dstMain.Tables(0).TableName)
dv.AllowDelete = False
未記入
常連さん
会議室デビュー日: 2004/11/24
投稿数: 25
投稿日時: 2006-11-08 17:45
以下で解決しました。

dv.Delete(DataGrid1.CurrentRowIndex)
DataGrid1.Refresh()

しかし、このあとにデータグリッドの件数を
取得すると↓上記で削除する前の件数を取得していまいます。
最新のデータグリッド情報を取得するにはどうしたらいいでしょうか?

Dim dt As DataTable = CType(DataGrid1.DataSource, DataTable)


THREE-ONE
常連さん
会議室デビュー日: 2006/08/17
投稿数: 36
投稿日時: 2006-11-09 00:43
こんばんは、THREE-ONEです。

DataGrid の行を削除するのではなく、DataSource の行を削除して再度 DataBind してみてはどうですか?
1

スキルアップ/キャリアアップ(JOB@IT)