あなたの人生を楽にし、チェックボックスリストでチェックボックスを作成してください: 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();
}
}