我正在尝试将每个复选框值存储到自己的变量中,以便我可以将该变量添加到SQL Server数据库的列中。
无论如何我可以设置'for each'循环,这样当它从复选框列表中读取值时,它会将值存储在以值命名的字符串变量中吗?
即。 string garden =“garden”; //如果已选中花园复选框
<asp:CheckBoxList ID="chkAmenities" RepeatLayout="Flow" RepeatDirection="Horizontal" runat="server">
<asp:ListItem>Furnished</asp:ListItem>
<asp:ListItem>Parking</asp:ListItem>
<asp:ListItem>Garden</asp:ListItem>
<asp:ListItem>Terrace/Balcony</asp:ListItem>
<asp:ListItem>Wifi</asp:ListItem>
<asp:ListItem>Heating</asp:ListItem>
</asp:CheckBoxList>
答案 0 :(得分:1)
对不起,为什么你不用字典呢?你可以这么简单:
var items = new Dictionary<string, string>();
foreach(ListItem v in chkAmenities.Items)
{
items.Add(v.Value, v.Text);
}
因此,您可以参考每个项目:项目[“停车”] 。
只是我的替代解决方案。
答案 1 :(得分:0)
试试这个,您可以获取所选项目并将值存储到其自己的变量中
string Furnished = string.Empty;
string Parking = string.Empty;
string Garden = string.Empty;
string Terrace = string.Empty;
string Wifi = string.Empty;
string Heating = string.Empty;
List<ListItem> selectedItem = chkAmenities.Items.Cast<ListItem>().Where(li => li.Selected).ToList();
foreach (ListItem item in selectedItem)
{
switch (item.Text)
{
case "Furnished": Furnished = "Furnished"; break;
case "Parking": Parking = "Parking"; break;
case "Garden": Garden = "Garden"; break;
case "Terrace/Balcony": Terrace = "Terrace/Balcony"; break;
case "Wifi": Wifi = "Wifi"; break;
case "Heating": Heating = "Heating"; break;
}
}