asp.net控件CheckBoxList提供了一个多选的checkbox控件,如下图所示,
这个控件可以手写条目页支持数据绑定。使用这个控件,要了解这个控件几个主要属性
1.DataSourceID属性
这个属性用来绑定数据源,数据源可以不用指定字段,select *也是可以的,因为还有DataTextField="name"属性
2.DataTextField属性
这个属性指定每个item的text绑定什么字段。
3.RepeatDirection属性
item条目排列是从上到下还是从左到右,默认是从上到下的。
4.RepeatColumns属性
一行重复几个checkBoxItem,同样的还有RepeatRows。
5.DataValueField属性
这个和DataTextField属性一样是绑定数据源字段的,不同的是这个数据不会显示在网页上,只能在后台读取做判断,特殊情况才使用。
这个控件可以在后台遍历item项,控制显示的text和是否选中。
foreach (ListItem item in CheckBoxList1.Items) { for (int i = 0; i < keywords.Length; i++) { if (item.Text == keywords[i]) { item.Selected = true; } } }
注意,如果使用数据绑定来给出item内容,那么初始化使用的事件可以是OnDataBound,其他的并不管用。而且此控件放入ajax的updatepanel中异步刷新也无效。
给出一段CheckBoxList绑定数据源(access)的示例,仅供参考。
<asp:CheckBoxList ID="CheckBoxList1" OnDataBound="Unnamed_Click" ViewStateMode="Disabled" CssClass="CheckBox" runat="server" DataSourceID="AccessDataSource0" DataTextField="name" RepeatColumns="2" BorderColor="black" BorderWidth="1" RepeatDirection="Horizontal" Font-Size="Small" Font-Strikeout="False" TextAlign="Right"> </asp:CheckBoxList>
数据源AccessDataSource0中有一name字段
<asp:AccessDataSource ID="AccessDataSource0" runat="server" DataFile="C:\storage\users.accdb" SelectCommand="SELECT * FROM [topic] ORDER BY statis DESC"></asp:AccessDataSource>