0

我有一个奇怪的问题,我做了一个全选复选框,标记为选中了很多复选框。

这是CheckedChanged活动

protected void chkSelecionaTodasOcorrencias_CheckedChanged(object sender, EventArgs e)
    {
        if (chk_selecionaTodasOcorrencias.Checked)
        {
            foreach (ListItem c in chkBox_TiposOcorrencia.Items)
            {
                c.Selected = true;
            }
        }
        else
        {
            foreach (ListItem c in chkBox_TiposOcorrencia.Items)
            {
                c.Selected = false;
            }
        }
        chkBox_TiposOcorrencia.DataBind();
    }

它检查所有复选框,或取消选中所有。

然后我有另一种方法可以在列表中插入所有复选框。

private List<int> insertItensInListIntegers(ListItemCollection itens)
    {
        int value = 0;
        List<int> queryItens = new List<int>();

        foreach (ListItem c in itens)
        {
            if (c.Selected) //<-- Here i'm getting false
            {
                tiposOcorrencias.TryGetValue(c.Text, out value);
                queryItens.Add(value);
            }
        }
        return queryItens;

    }

参数中通知的值为:chkBox_TiposOcorrencia.Items

在屏幕上,所有复选框都已检查,但是当我尝试调试时,c.Selected值为false.

提前致谢。

4

1 回答 1

0

就像 Freak_Droid 在他的评论中描述的那样,如果您在页面加载时加载复选框,只需将加载复选框的代码放在 if 语句中检查!ispostback。例如 -

protected void Page_Load(object sender, EventArgs e)
{

     if (!IsPostBack)
        {
         //here is where you would put any of your code for databinding your checkboxes


        }
}
于 2013-08-30T14:54:24.907 回答