我在aspx页面中添加了这个CheckBoxList
:
<asp:CheckBoxList ID="Fruits" runat="server">
<asp:ListItem Text="Mango" Value="1" />
<asp:ListItem Text="Apple" Value="2" />
<asp:ListItem Text="Banana" Value="3" />
<asp:ListItem Text="Guava" Value="4" />
<asp:ListItem Text="Orange" Value="5" />
</asp:CheckBoxList>
在此CheckBoxList
中,可以选择多个值,例如:
这些值存储在数据库表的字段中:
for (int i = 0; i < Fruits.Items.Count; i++)
{
if (Fruits.Items[i].Selected == true)
{
FruitsUpdate += Fruits.Items[i].Text.ToString() + ";";
}
}
数据库中记忆的值:1;4;5;
现在在aspx表单页面中,我需要禁用并检查数据库中记忆的CheckBoxList
的值,但我已经尝试了这段代码但没有成功,因为所有ListItem
都被禁用但未检查。
FruitsDB = dr["Fruits"].ToString();
if (FruitsDB.ToString() != "")
{
Fruits.Text = FruitsDB.ToString();
Fruits.Enabled = false;
}
else
{
Fruits.Enabled = true;
}
我需要禁用并在CheckBoxList中检查值 1和4和5的项目。
请帮帮我,谢谢你。
答案 0 :(得分:0)
您没有设置列表项的Selected
属性,您可以在其中设置Enabled
属性。
这是代码。您将遍历CheckBoxList。如果当前复选框的值在FruitsDB中,则它将被选中并禁用。
var memory = FruitsDB.ToString();
foreach (ListItem item in Fruits.Items)
{
if (memory.Contains(item.Value))
{
item.Enabled = false;
item.Selected = true;
}
}