5.6 复选框控件和复选组控件(CheckBox和CheckBoxList)
当一个投票系统需要用户能够选择多个选择项时,则单选框控件就不符合要求了。ASP.NET还提供了复选框控件和复选组控件来满足多选的要求。复选框控件和复选组控件同单选框控件和单选组控件一样,都是通过Checked属性来判断是否被选择。
5.6.1 复选框控件(CheckBox)
同单选框控件一样,复选框也是通过Check属性判断是否被选择,而不同的是,复选框控件没有GroupName属性,示例代码如下所示。
上述代码中声明了两个复选框控件。对于复选框空间,并没有支持的GroupName属性,当双击复选框控件时,系统会自动生成方法。当复选框控件的选中状态被改变后,会激发该事件。示例代码如下所示。
上述代码分别为两个选框设置了事件,设置了当选择选框1时,则文本标签输出“选框1被选中” ,如图5-10所示。当选择选框2时,则输出“选框2被选中,并且字体变大”,运行结果如图5-11所示。
图5-10 选框1被选中
图5-11 选框2被选中
对于复选框而言,用户可以在复选框控件中选择多个选项,所以就没有必要为复选框控件进行分组。在单选框控件中,相同组名的控件只能选择一项用于约束多个单选框中的选项,而复选框就没有约束的必要。
5.6.2 复选组控件(CheckBoxList)
同单选组控件相同,为了方便复选控件的使用,.NET服务器控件中同样包括了复选组控件,拖动一个复选组控件到页面可以同单选组控件一样添加复选组列表。添加在页面后,系统生成代码如下所示。
上述代码中,同样增加了3个项目提供给用户选择,复选组控件最常用的是SelectedIndexChanged事件。当控件中某项的选中状态被改变时,则会触发该事件。示例代码如下所示。
上述代码中,CheckBoxList1.Items[0].Selected是用来判断某项是否被选中,其中Item数组是复选组控件中项目的集合,其中Items[0]是复选组中的第一个项目。上述代码用来修改字体的大小,如图5-12所示,当选择不同的选项时,字体的大小也不相同,运行结果如图5-13所示。
图5-12 选择大号字体
图5-13 选择小号字体
正如图5-12、5-13所示,当用户选择不同的选项时,Label标签的字体的大小会随之改变。
注意:复选组控件与单选组控件不同的是,不能够直接获取复选组控件某个选中项目的值,因为复选组控件返回的是第一个选择项的返回值,只能够通过Item集合来获取选择某个或多个选中的项目值。
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"/>
<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;
}
{
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所示。
图5-10 选框1被选中
图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>
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;
}
}
{
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集合来获取选择某个或多个选中的项目值。
加支付宝好友偷能量挖...