在复选框列表控件中获取复选框的值
问题描述:
我的页面上有一个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
我如何获得价值?
感谢
答
你的复选框列表包含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
再次循环 - 还不如干脆做一个...
答
您需要使用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()
运行代码时会发生什么?出于好奇,为什么LINQ? – Tim
您是否为您的复选框设置了值? – Darren
是的值被设置,我得到一个错误,说价值是不是CheckBox的成员 – SkyeBoniwell