我的页面上有一个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
我如何获得价值?
由于
答案 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
中循环 - 也可以只执行一次...