我有四个这样的复选框,
<asp:CheckBoxList ID="CheckBoxList1" runat="server"
onselectedindexchanged="CheckBoxList1_SelectedIndexChanged" Width="190px">
<asp:ListItem>Programming Contests</asp:ListItem>
<asp:ListItem>Seminars/Workshops</asp:ListItem>
<asp:ListItem>Social Gatherings</asp:ListItem>
<asp:ListItem>Tech Support</asp:ListItem>
</asp:CheckBoxList>
我想将这些复选框的值存储为表中的0或1。此外,可能存在用户选择多个复选框的情况,如何处理该情况?我在数据库中使用了'bit'数据类型。但我遇到的困惑是如何将这些复选框的值存储为数据库中的0或1?
答案 0 :(得分:0)
这真的很简单。您需要做的就是为数据库中的每个选项创建一个位字段。我没有看到任何其他逻辑方式。
从复选框返回的true或false值在C#中称为bools。 Bool存储在数据库中,位为true,为1,false为0。
修改强>:
如果您打算扩展选项,我会建议以下内容。您可以创建一个包含所有选项的表,并为它们设置代码。然后创建一个链接表,其中包含他们想要的人和选项。如果用户选择多个选项,它们将被多次放入表中(每个选项一次)。
答案 1 :(得分:0)
你可以试试这个:表“checkboxlist”,带有字段Id,Description来保存复选框列表项。然后让你的表与用户选择的项目:表“Checkboxanswers”,其中“checkboxitemId”字段是“checkboxlist”的id字段的外键,然后添加另一个位字段以指示它是否被选中
答案 2 :(得分:0)
protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
List<int> checkList = new List<int>();
foreach (ListItem item in CheckBoxList1.Items)
{
if (item.Selected)
{
checkList.Add(1);
}
else
{
checkList.Add(0);
}
//Now you can use this list to pass it to Sql
}
}