- - PR -
DataGridでの選択されている行の取得
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-03-05 10:18
[VB.NET-Oracle8i-Windows2000]
お世話になります。 DataGridで選択されている行を取得して、行の列(項目内容)を取得しているのですが 以下の方法で行は取得でき、Ds.Table1.Rows(取得行)("列")で列も取得できています。 ここでDataGridのHeaderText部分をクリックし昇降順を入れ替え後に選択すると、 入れ替える前の情報を取得しています。 どなたかご教授お願いいたします。 (下記では4を選択しているが取得できるのは2である) 列(前) 列(後) 1 5 2 4(選択) 3 → 3 4 2 5 1 Try Dim n As Integer = _ DataGrid1.BindingContext(DataGrid1.DataSource, DataGrid1.DataMember).Count Dim i As Integer For i = 0 To n - 1 '行が選択されているか調べる If DataGrid1.IsSelected(i) Then '選択されていればその行番号を表示する Exit For End If Next Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Exception") End Try |
|
投稿日時: 2004-03-05 15:19
こんにちは。
ソート後の行は DsTabke1.DefaultView[行番号]["列名"] で取得できるはずです。 (あとは簡単にDataGrid1[行番号][列番号]でもOKだったはず) どちらも現在環境がないので未確認ですが、試してみてください。 |
|
投稿日時: 2004-03-05 15:50
早速の回答有難うございます。
以下のように試してみましたが変化は見られませんでした。 ソート後もソート前の列を引っ張りました。 データセット名.Table名.DefaultView(行番号)("列名") |
|
投稿日時: 2004-03-05 16:20
あれれ、ダメでしたか。ごめんなさい。
C#ですがサンプルを作ってみました。 DataSetをバインドするとDefaultViewは利用されないみたいですね。 ちょっと汚いかもしれませんが... DataSet wSet = (DataSet)dataGrid1.DataSource; DataTable wTable = wSet.Tables["テーブル名"]; object wValue = dataGrid1[行番号, wTable.Columns.IndexOf("列名")]; で一応取れました。 |
1