禁用和检查c#中存储在数据库中的`CheckBoxList`的值

时间:2015-11-26 11:56:02

标签: c# checkbox listitem

我在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>

enter image description here

在此CheckBoxList中,可以选择多个值,例如:

enter image description here

这些值存储在数据库表的字段中:

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的项目。

请帮帮我,谢谢你。

1 个答案:

答案 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;
        }
    }