获取checkboxlist控件中复选框的值

时间:2013-05-15 17:22:17

标签: asp.net vb.net

我的页面上有一个asp:CheckboxList,我需要获取已选中复选框的值。

所以我有一个linq查询然后我循环,但我发现没有办法检索与各个复选框相关的值。

这是我的代码:

        Dim checkboxValues = cblmyCheckboxes.Controls.OfType(Of CheckBox)().Where(Function(c) c.Checked)

        For Each c As CheckBox In checkboxValues
            Response.Write(c.Value)
        Next

我如何获得价值?

由于

2 个答案:

答案 0 :(得分:2)

您需要使用Selected代替Checked

var selectedValues = (CheckBoxList1.Items.Cast<ListItem>()
.Where(i => i.Selected)
.Select(i => i.Value))
.ToList();

Dim selectedValues = (CheckBoxList1.Items.Cast(Of ListItem)()
.Where(Function(i) i.Selected)
.[Select](Function(i) i.Value))
.ToList()

答案 1 :(得分:1)

您的复选框列表包含ListItem而不是复选框。所以cblmyCheckboxes.Items是ListItemCollection

真的,更简单快捷的方法是:

For Each li as ListItem in cblmyCheckboxes.Items
       If (li.Selected) Then
           Dim XX = li.Value
          '' Do something with Value
       End If
Next

通过使用LINQ,您可以有效地遍历复选框列表项(在LINQ函数的背景中(无论如何这是错误的),然后再次在For Each中循环 - 也可以只执行一次...