当我执行代码时,我得到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);
}
}
答案 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 ) );
}