HOME >> Tips >> Microsoft.NET >> ASP.NET

[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