CheckBoxList服务器控件
CheckBoxList控件用来建立一个多选的复选框组。
CheckBoxList控件中的每个可选项由一个ListItems元素来定义!
可以操作一组项,而不是一个项,每个项都有一个复选框。
它有这样的一些属性:
前台部分代码:
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1"runat="server"Text="提交选择" OnClick="Button1_Click"/><br /><br />
<asp:Label ID="Label1" runat="server"></asp:Label>
<br/>
<asp:CheckBoxList ID="CheckBoxList1"runat="server"DataTextField="CountryName" RepeatColumns="3" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px"></asp:CheckBoxList>
</div>
</form>
后台部分代码:
protected void Page_Load(objectsender, EventArgs e)
{
//获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。
//如果是为响应客户端回发而加载该页,则为 true;否则为 false。
if (!IsPostBack)
{
//创建SqlConnection连接对象,从web.config获取连接字符串。
SqlConnectionCountryStrings = new SqlConnection(ConfigurationManager.ConnectionStrings["CountryStrings"].ConnectionString);
//创建SqlCommand命令对象,用构造函数初始化它的连接属性和要执行的SQL语句。
SqlCommandcmd = new SqlCommand("select [CountryName] From [Country]",CountryStrings);
CountryStrings.Open();
//SqlDataAdaptersda = new SqlDataAdapter(cmd);
//DataSetds = new DataSet();
//sda.Fill(ds);
调用SqlCommand命令对象的ExecuteReader方法,通过SqlDataReader对象获取查询到的数据流。
SqlDataReadersdr = cmd.ExecuteReader();
CheckBoxList1.DataSource = sdr;
CheckBoxList1.DataBind();
cmd.Dispose();
CountryStrings.Close();
}
}
protected voidButton1_Click(object sender, EventArgs e)
{
Label1.Text= "你选择的是:<br>";
foreach (ListItemli in CheckBoxList1.Items)
{
if(li.Selected == true)
{
Label1.Text += li.Text + "<br>";
}
}
}
通过运行来显示出多个选项,当用户选择完以后点出按钮提交。触发Ispostback事件,因为页面是回发的,所以不执行if结构内的语句,而执行Button1_Click事件,从而是label中显示用户刚才选择的选项。