今回はチェックボックスの使い方を解説します。引き続き MeasureSettingPage.razor を使い、商品名のプルダウンの下にチェックボックスを追加していきます。
チェックボックスを追加する
チェックボックスも通常の input タグで作成できます。type=”checkbox” と指定するだけで、チェックボックスとして表示されるようになります。
<input type="checkbox" />
図1
このように記述するだけで input タグがチェックボックスに変わります。
図2
実際にブラウザーで確認すると、小さな素のチェックボックスが表示されます。見た目としては少し寂しい印象です。
図3
Bootstrap でスタイルを整える
Bootstrap には class=”form-check-input” というチェックボックス用のクラスが用意されているので、これを指定します。
<input type="checkbox" class="form-check-input" />
図4
class 属性の候補一覧から form-check-input を選択し、追加します。
図5
ブラウザーで確認すると、先ほどより一回り大きく、見た目の整ったチェックボックスに変わっていることが分かります。
図6
Bootstrap 公式サイトで確認する
これもいつも通り、Bootstrap の公式サイトで「bootstrap checkbox」と検索して詳細を確認していきます。
図7
検索結果から Bootstrap 公式サイトの「チェックボックスとラジオ」のページを開きます。
図8
ページには Default checkbox と Checked checkbox の2つのチェックボックスのサンプルが掲載されています。1つ目のサンプルの HTML を見ると、input タグに class=”form-check-input” と type=”checkbox”、そして value 属性が指定されていることが分かります。
図9
value で値を指定することもできますが、基本的にはこれまでの入力エリアやプルダウンと同じように、@bind でチェック状態をプログラム側にバインドする方針で進めます。
チェック状態をデータバインドする
チェックの状態を保持するための bool 型フィールドを用意します。
private bool _isAuto = false;
図10
双方向データバインドなので、これまでと同じように @bind=”_isAuto” と指定するだけで、チェックの状態をプログラム側で管理できるようになります。
<input type="checkbox" class="form-check-input" @bind="_isAuto" />
図11
実行してチェックを入れてから保存すると、ブレークポイントで _isAuto が true になっていることが確認できます。チェックを外して保存すると false になり、正しくデータバインドできていることが分かります。
図12
チェンジイベントを取得する
チェンジイベントの取得方法も、これまでのプルダウンや入力エリアと同様です。@bind:after にメソッド名を指定します。
なお、このとき “AutoChenged” のように綴りを誤ると、IDE が「スペルミス すぐに直してます」とサジェストしつつ、CS0103(’AutoChenged’ という名前は現在のコンテキストに存在しません)のエラーが表示されます。メソッド名の綴りには注意が必要です。
図13
正しく AutoChanged と綴りを修正し、対応するメソッドを作成してブレークポイントを設置します。
<input type="checkbox" class="form-check-input"
@bind="_isAuto"
@bind:after="AutoChanged" />
private void AutoChanged()
{
}
図14
実行してチェックボックスにチェックを入れると AutoChanged が呼ばれ、ブレークポイントで _isAuto が true になっていることが確認できます。チェックを外すと同様に false で通知が来ることも確認でき、チェンジイベントが正しく取得できています。
図15
まとめ
チェックボックスは input タグに type=”checkbox” を指定するだけで作成でき、Bootstrap の class=”form-check-input” を付けることで見た目を整えられます。チェック状態の管理は @bind、変更の検知は @bind:after と、これまでのプルダウンや入力エリアと同じパターンで扱えることが分かりました。
A01_はじめに
A02_バージョンの確認
A03_プロジェクトの作成
A04_アプリの実行
A05_サンプルプログラムの構成
A06_Razorコンポーネント
A07_Razor構文
A08_@pageでURLを指定する
A09_@rendermode
A10_PageTitle
A11_HTMLの見出し
A12_pタグ
A13_単方向データバインド
A14_単方向データバインドの詳細
A15_Bootstrap
A16_ボタンクリックイベント
A17_イベント引数の受け取り方
A18_ここまでのまとめ
B01_新しいWebページを追加する方法
B02_サイドバーから画面を表示する
B03_サイドバーのアイコンを変更する方法
B04_計測値を表示する
B05_変数に置き換える
B06_最新の値でデータを更新する
B07_@usingで通常のC#コードを呼び出す
B08_画面遷移_aタグ
B09_画面遷移_aタグの見た目をボタンにする
B10_画面遷移_NavigationManagerでの遷移
B11_画面間のパラメータの受け渡し方法
B12_EscapeDataStringでエスケープする
B13_複数のパラメータを渡す
B14_任意のパラメータにする
B15_string以外の型をパラメータで使う方法
B16_DateTime型をパラメータで渡す方法
B17_引数2個のURLも型指定に変更する
B18_パラメータ属性をつけるときの注意点
B19_OnParametersSet
B20_OnInitialized
B21_OnInitializedが2回通る問題の対応
B22_ブラウザが開いている間の値を記憶する方法
B23_値の受け渡しとしてのProtectedSessionStorage
B24_非同期を想定したUIの制御
C01_一覧表示
C02_非同期での一覧表示
C03_table-striped
D01_入力エリア
D02_双方向データバインド
D03_入力データをリアルタイムで通知する方法
D04_placeholder
D05_入力エリアの横幅の調整
D06_テキストチェンジイベントを拾う方法
D07_プルダウン
D08_プルダウンのbootstrap
D09_プルダウンの選択している値をデータバインドで操作する
D10_プルダウンにリストの値を表示する
D11_プルダウンに未選択行を入れる
D12_プルダウンの入力を禁止する
D13_プルダウンのチェンジイベントを取得する
D14_チェックボックス
D15_チェックボックスにラベルを付ける
D16_複数のチェックボックスを並べる
D17_ラジオボタン
D18_ラジオボタンのデータバインド
D19_ラジオボタンのチェンジイベント
D20_ラジオボタンにbootstrapを適応する