1

我的页面上有一个 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

我怎样才能得到这些值?

谢谢

4

2 回答 2

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()
于 2013-05-15T17:50:45.240 回答
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- 中再次循环,还不如只做一个......

于 2013-05-15T17:48:35.760 回答