5.6 复选框控件和复选组控件(CheckBox和CheckBoxList)

  当一个投票系统需要用户能够选择多个选择项时,则单选框控件就不符合要求了。ASP.NET还提供了复选框控件和复选组控件来满足多选的要求。复选框控件和复选组控件同单选框控件和单选组控件一样,都是通过Checked属性来判断是否被选择。

5.6.1 复选框控件(CheckBox)
  同单选框控件一样,复选框也是通过Check属性判断是否被选择,而不同的是,复选框控件没有GroupName属性,示例代码如下所示。
+展开
-HTML
        <asp:CheckBox ID="CheckBox1" runat="server" Text="Check1" AutoPostBack="true" />
        <asp:CheckBox ID="CheckBox2" runat="server" Text="Check2"  AutoPostBack="true"/>

  上述代码中声明了两个复选框控件。对于复选框空间,并没有支持的GroupName属性,当双击复选框控件时,系统会自动生成方法。当复选框控件的选中状态被改变后,会激发该事件。示例代码如下所示。
+展开
-C#
        protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
        {
            Label1.Text = "选框1被选中"; //当选框1被选中时
        }
        protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
        {
            Label1.Text = "选框2被选中,并且字体变大";//当选框2被选中时
            Label1.Font.Size = FontUnit.XXLarge;
        }

  上述代码分别为两个选框设置了事件,设置了当选择选框1时,则文本标签输出“选框1被选中” ,如图5-10所示。当选择选框2时,则输出“选框2被选中,并且字体变大”,运行结果如图5-11所示。
选框1被选中
图5-10 选框1被选中
选框2被选中
图5-11 选框2被选中

  对于复选框而言,用户可以在复选框控件中选择多个选项,所以就没有必要为复选框控件进行分组。在单选框控件中,相同组名的控件只能选择一项用于约束多个单选框中的选项,而复选框就没有约束的必要。

5.6.2 复选组控件(CheckBoxList)
  同单选组控件相同,为了方便复选控件的使用,.NET服务器控件中同样包括了复选组控件,拖动一个复选组控件到页面可以同单选组控件一样添加复选组列表。添加在页面后,系统生成代码如下所示。
+展开
-HTML
        <asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPostBack="True" 
            onselectedindexchanged="CheckBoxList1_SelectedIndexChanged">

            <asp:ListItem Value="Choose1">Choose1</asp:ListItem>
            <asp:ListItem Value="Choose2">Choose2</asp:ListItem>
            <asp:ListItem Value="Choose3">Choose3</asp:ListItem>
        </asp:CheckBoxList>

  上述代码中,同样增加了3个项目提供给用户选择,复选组控件最常用的是SelectedIndexChanged事件。当控件中某项的选中状态被改变时,则会触发该事件。示例代码如下所示。
+展开
-C#
        protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (CheckBoxList1.Items[0].Selected)//判断某项是否被选中
            {
                Label1.Font.Size = FontUnit.XXLarge;//更改字体大小
            }
            if (CheckBoxList1.Items[1].Selected)//判断是否被选中
            {
                Label1.Font.Size = FontUnit.XLarge;//更改字体大小
            }
            if (CheckBoxList1.Items[2].Selected)
            {
                Label1.Font.Size = FontUnit.XSmall;
            }
        }

  上述代码中,CheckBoxList1.Items[0].Selected是用来判断某项是否被选中,其中Item数组是复选组控件中项目的集合,其中Items[0]是复选组中的第一个项目。上述代码用来修改字体的大小,如图5-12所示,当选择不同的选项时,字体的大小也不相同,运行结果如图5-13所示。
选择大号字体
图5-12 选择大号字体
选择小号字体
图5-13 选择小号字体

  正如图5-12、5-13所示,当用户选择不同的选项时,Label标签的字体的大小会随之改变。

注意:复选组控件与单选组控件不同的是,不能够直接获取复选组控件某个选中项目的值,因为复选组控件返回的是第一个选择项的返回值,只能够通过Item集合来获取选择某个或多个选中的项目值。

加支付宝好友偷能量挖...


评论(1)网络
阅读(134)喜欢(0)Asp.Net/C#/WCF