「.Net DataGrid DB検索結果にCheckBoxをプラスして表示」の編集履歴(バックアップ)一覧はこちら
「.Net DataGrid DB検索結果にCheckBoxをプラスして表示」(2006/06/28 (水) 19:11:08) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
いろいろ方法はあると思うけど、今回やった方法をまとめます。
やること:
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に列コピー
'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
表示オプション
横に並べて表示:
変化行の前後のみ表示: