让您的生活更轻松,并使用复选框列表创建复选框:http: //msdn.microsoft.com/de-de/library/system.web.ui.webcontrols.checkboxlist.aspx
<asp:CheckBoxList ID="SomeElement" runat="server"
AutoPostBack="true"
RepeatColumns="4"
EnableViewState="true">
</asp:CheckBoxList>
使用 Repeatcolumns 属性,您告诉元素,您实际上需要 4 列,因此控件会将您的 32 个元素除以 4,并将这些复选框按 8 个一组进行分组。
在此之后,您可以像这样遍历每个列表:
foreach(var cb in checkboxlistID)
{
if(cb.Checked)
{
//do something
}
}
最重要的是,这里有一些旧代码向您展示如何使用从 SQL 查询中获取的数据填充复选框列表。您可以忽略 if 表达式,它检查是否有缓存数据,从中填充所有复选框。
using (OleDbConnection connection = new OleDbConnection(ConfigurationManager.ConnectionStrings["database"].ConnectionString))
{
string Query = @"SELECT * from level";
OleDbCommand command = new OleDbCommand(Query, connection);
if (Session["SavedLevelItems"] != null)
{
CheckBoxListLevel.Items.Clear();
List<ListItem> SessionList = (List<ListItem>)Session["SavedLevelItems"];
foreach (var item in SessionList)
{
try
{
CheckBoxListLevel.Items.Add(item);
}
catch { }
}
}
else
{
connection.Open();
CheckBoxListLevel.DataTextField = "bez_level";
CheckBoxListLevel.DataValueField = "id_level";
OleDbDataReader ListReader = command.ExecuteReader();
CheckBoxListLevel.DataSource = ListReader;
CheckBoxListLevel.DataBind();
ListReader.Close(); ListReader.Dispose();
}
}