[ASP.NET] GridView の CheckBoxField を変更できるようにする
2013/09/12
文書番号:20169
開発環境 :Visual Studio 2010
フレームワーク:.NET Framework 4.0
ASP.NET で GridView を使って一覧表示する画面を作りました。
CheckBoxField を設定してチェック状態をクリックで変更できるようにしたのですが、何故かチェックボックスが有効になりません。
CheckBoxField には ReadOnly プロパティがありますが、これを False にしてもチェックボックスを変更することはできませんでした。
クリックで拡大
【設定手順】
-
グリッドへデータバインドする際にセルの中のチェックボックスコントロールを取得して Enabled を True にします。
Private Sub GridView1_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
ヘッダ行の場合は処理しない
If e.Row.RowIndex < 0 Then Return
チェックボックスコントロールを取得して有効化する
Dim check As CheckBox = CType(e.Row.Cells(0).Controls(0), CheckBox)
check.Enabled = True
End Sub
クリックで拡大
このチェックボックスをクリックした時にPostBackを発生させる場合はセル内のコントロールのAutoPostBackをTrueに設定します。
Private Sub GridView1_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
ヘッダ行の場合は処理しない
If e.Row.RowIndex < 0 Then Return
チェックボックスコントロールを取得して有効化する
Dim check As CheckBox = CType(e.Row.Cells(0).Controls(0), CheckBox)
check.Enabled = True
check.AutoPostBack = True ←追記 AutoPostBackをTrueにする
End Sub