如何确定/选择复选框列表 -

时间:2011-05-25 19:00:34

标签: c# asp.net

当我执行代码时,我得到4个复选框,并且我选中/选中所有4个复选框,当我尝试调试代码时,它确实计算我有4个复选框但是所有4个复选框都被选中= false。

我在代码中缺少什么?

<asp:checkboxlist id="chk" runat="server" ondatabinding="chk_DataBinding"
   ondatabound="chk_DataBound">
</asp:checkboxlist>

List<String> roles = new List<string>();

 for (int i = 0; i < chk.Items.Count; i++)
 {
     if (chk.Items[i].Selected)
    {
        roles.Add(chk.Items[i].Value);
    }
 }

2 个答案:

答案 0 :(得分:2)

您的逻辑与ListControl.Items页面上给出的基本CheckBoxList一致,根据个人经验,检查.Selected的{​​{1}}属性应该可以正常工作。< / p>

检查以确保在点击“if checked”逻辑之前没有重新填充ListItem - 如果我不得不猜测,我会说你很可能会丢失列表在每个回发。简单的解决方案是,如果它是回发,则不要调用数据绑定逻辑。

答案 1 :(得分:0)

public string[] CheckboxListSelections(System.Web.UI.WebControls.CheckBoxList list)
{
 ArrayList values = new ArrayList();
 for(int counter = 0; counter < list.Items.Count; counter++)
 {
  if(list.Items[counter].Selected)
  {
   values.Add(list.Items[counter].Value);
  }    
 }
 return (String[]) values.ToArray( typeof( string ) );
}