我遇到了一个奇怪的问题,我已经选中了全部选中复选框,标记为选中了很多复选框。
这是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
。
提前致谢。
答案 0 :(得分:0)
就像Freak_Droid在他的评论中描述的那样,如果你在pageload上加载你的复选框,只需将你的代码加载到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
}
}