asp Checkbox代码隐藏验证

时间:2014-06-25 18:51:41

标签: c# asp.net checkbox

我的aspx页面上有一个复选框,从一个字符串列表中加载(基于其他一些变量), 我只希望用户能够选择这些盒子的常数;当前的常数是6.在我的代码背后,我一直试图验证这一点;如果' selectedCount'等于我在另一堂课中发现的常数我会做点什么。问题是它没有识别支票。

int selectedCount = 0;
        for (int i = 0; i < checkbox.Items.Count; i++)
        {

            if (checkbox.Items[i].Selected == true)
            {
                selectedCount++;
            }
        }

我的问题是它遍历列表中的每个项目,但即使在所选项目上,它也会返回false。如何在这样的情况下正确检查我选择/未选择的bool?因为这显然不是在做伎俩。

1 个答案:

答案 0 :(得分:0)

我能想到的一件事是你在回发中再次绑定CheckBoxList。

为了防止它,你想使用 IsPostBack

<asp:CheckBoxList runat="server" ID="CheckBoxList1" />
<asp:Button runat="server" ID="Button1" Text="Submit" OnClick="Button1_Click" />

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        CheckBoxList1.Items.Add(new ListItem("One", "1"));
        CheckBoxList1.Items.Add(new ListItem("Two", "2"));
        CheckBoxList1.Items.Add(new ListItem("Three", "3"));
        CheckBoxList1.Items.Add(new ListItem("Four", "4"));
    }
}

protected void Button1_Click(object sender, EventArgs e)
{
    int selectedCount = 0;
    var selectedText = new List<string>();
    foreach (ListItem item in CheckBoxList1.Items)
    {
        if (item.Selected)
        {
            selectedCount++;
            selectedText.Add(item.Text);
        }
    }
}