エディタに以下のコード (sample7.aspx) を入力してください。
1: <script runat="server" language="C#">
2: void btn1_click(object sender, EventArgs ev)
3: {
4: if(chk1.Checked == true)
5: {
6: lbl1.Text = "ギフト オプション「有り」が選択されました。";
7: }
8: else
9: {
10: lbl1.Text = "ギフト オプション「無し」が選択されました。";
11: }
12: }
13: </script>
14:
15: <html>
16: <body>
17: <form runat="server">
18: <asp:label runat="server" id="lbl1" /><br />
19: <asp:checkbox runat="server" id="chk1" text="レジでギフト オプションを表示する" /><br />
20: <asp:button runat="server" id="btn1" onclick="btn1_click" text="レジに進む" />
21: </form>
22: </html>
23:
19 行目にチェックボックスを配置しています。
20 行目のボタンが押されると、2 ~12 行目のコードが実行されます。
4 行目でチェックボックスのチェック有無を判定 (Checked の値を判定) しています。
sample7.aspx をサーバーに配置してブラウザで表示するとこの様になります。
AutoPostBack
ボタンを押さなくても、チェックボックスにチェックを入れたり外したりするだけで反応するようにしてみます。
エディタに以下のコード (sample7b.aspx) を入力してください。
1: <script runat="server" language="C#">
2: void chk1_checkedChanged(object sender, EventArgs ev)
3: {
4: if(chk1.Checked == true)
5: {
6: lbl1.Text = "ギフト オプション「有り」が選択されました。";
7: }
8: else
9: {
10: lbl1.Text = "ギフト オプション「無し」が選択されました。";
11: }
12: }
13: </script>
14:
15: <html>
16: <body>
17: <form runat="server">
18: <asp:label runat="server" id="lbl1" /><br />
19: <asp:checkbox runat="server" id="chk1" autoPostBack="true"
20: onCheckedChanged="chk1_checkedChanged"
21: text="レジでギフト オプションを表示する" /><br />
22: </form>
23: </html>
24:
20 行目の onCheckChanged で「チェックボックスのチェック状態が変化した際に 2 行目から始まる処理をしなさい」と指示しています。
で、その指示を有効にするために 19 行目で autoPostBack="true" と書いています。
sample7b.aspx をサーバーに配置してブラウザで表示するとこの様になります。
先ほどの例と異なり、今回の例はボタンがありません。チェックボックスにチェックを入れたり・外したりするだけでメッセージが変化します。
参考になるページ
CheckBox クラス (System.Web.UI.WebControls)
CheckBox.Checked プロパティ (System.Web.UI.WebControls)
CheckBox.AutoPostBack プロパティ (System.Web.UI.WebControls)
CheckBox.OnCheckedChanged メソッド (System.Web.UI.WebControls)