循环显示复选框列表

时间:2010-07-15 21:58:37

标签: asp.net foreach checkboxlist

我正在构建一个复选框列表:

<asp:CheckBoxList ID="CheckBoxes" DataTextField="Value" DataValueField="Key" runat="server"></asp:CheckBoxList>

尝试获取所选项目的值:

List<Guid> things = new List<Guid>();
foreach (ListItem item in this.CheckBoxes.Items)
{
    if (item.Selected)
        things.Add(item.Value);
    }
}

我得到了错误

  

“最好的重载方法匹配   'System.Collections.Generic.List.Add(的System.Guid)'   有一些无效的参数“

3 个答案:

答案 0 :(得分:8)

'thing'列表除Guid值外。您应该将item.value转换为Guid值:

List<Guid> things = new List<Guid>();
foreach (ListItem item in this.CheckBoxes.Items)
{
  if (item.Selected)
    things.Add(new Guid(item.Value));
}

答案 1 :(得分:4)

ListItem.Value的类型为System.String,您正在尝试将其添加到List<Guid>。你可以尝试:

things.Add(Guid.Parse(item.Value));

只要字符串值可解析为Guid,它就会起作用。如果不清楚,您需要更加小心并使用Guid.TryParse(item.Value)

答案 2 :(得分:0)

如果List的Add方法确实接受了GUID(请参阅错误消息),但是不接受“item.value”,那么我猜item.value不是GUID。

试试这个:

...
things.Add(CTYPE(item.value, GUID))
...