いろいろ方法はあると思うけど、今回やった方法をまとめます。
やること:
1.DB検索結果をDataGridに表示
2.ID列は非表示
3.一番左に行選択用のチェックボックスを表示
1.DB検索結果をDataGridに表示
2.ID列は非表示
3.一番左に行選択用のチェックボックスを表示
やったこと:
<DataSet(xsd)>
1.DataSetクラスを追加し、検索結果内容+チェックボックスをxsdに登録。(テーブルエレメント名をeletblとする)
チェックボックスは type="xs:boolean" とする
<Formデザイナ>
2.FormにデザイナでDataSetを型指定されたデータセットで1を選んで追加(データセット名をdsとする)
3.FormにデザイナでDataGridを追加し、プロパティ設定 DataSource=ds, DataMemeber=eletbl
<DataGridTableStyle コレクションエディタ>
4.プロパティTableStylesの「...」ボタンクリック。「追加」→「OK」。再度プロパティTableStylesの「...」ボタンクリック
5.追加したメンバを選択し、MappingNameにeletblを設定
6.GridColumnStyleの「...」ボタンクリック
<DataGridColumnStyle コレクションエディタ>
7.検索カラム数 DataGridTextBoxColumnを追加。それぞれMappingNameにカラム名を設定。
チェックボックスはDataGridBoolColumnで追加。タイトル文字もここで入れる
8.IDカラムのwidth=0
<DB検索>
9.検索のSelect句にダミーのチェックボックス列を含める。
10.結果のDataSetの中身をDataGridのDataSourceに列コピー
<DataSet(xsd)>
1.DataSetクラスを追加し、検索結果内容+チェックボックスをxsdに登録。(テーブルエレメント名をeletblとする)
チェックボックスは type="xs:boolean" とする
<Formデザイナ>
2.FormにデザイナでDataSetを型指定されたデータセットで1を選んで追加(データセット名をdsとする)
3.FormにデザイナでDataGridを追加し、プロパティ設定 DataSource=ds, DataMemeber=eletbl
<DataGridTableStyle コレクションエディタ>
4.プロパティTableStylesの「...」ボタンクリック。「追加」→「OK」。再度プロパティTableStylesの「...」ボタンクリック
5.追加したメンバを選択し、MappingNameにeletblを設定
6.GridColumnStyleの「...」ボタンクリック
<DataGridColumnStyle コレクションエディタ>
7.検索カラム数 DataGridTextBoxColumnを追加。それぞれMappingNameにカラム名を設定。
チェックボックスはDataGridBoolColumnで追加。タイトル文字もここで入れる
8.IDカラムのwidth=0
<DB検索>
9.検索のSelect句にダミーのチェックボックス列を含める。
10.結果のDataSetの中身をDataGridのDataSourceに列コピー
'DataGridにコピー(DataGridのスタイルを変更しないようにするため) Dim srcdt As DataTable = resultDataSet.Tables(0) Dim ds As DataSet = CType(Me.DataGrid1.DataSource, DataSet) Dim dt As DataTable = ds.Tables(0) dt.Clear() Dim dr As DataRow For Each dr In srcdt.Rows dt.ImportRow(dr) Next
<チェック行の取得>
Dim dt As DataTable = CType(Me.DataGrid1.DataSource, DataSet).Tables(0) Dim dr As DataRow For Each dr In dt.Rows If (dr("check列名")) Then rowsList.Add(dr) End If Next