【发布时间】:2019-09-05 03:43:23
【问题描述】:
我是一个简单的网络表单,它有 CheckBoxList 和多选,我想获取项目的值而不是文本。
<asp:CheckBoxList ID="ChkAreaOfInterest" runat="server" CssClass="row-dd" >
<asp:ListItem Value="0" Selected="True">---SELECT OPTION--</asp:ListItem>
<asp:ListItem Value="One">RED</asp:ListItem>
<asp:ListItem Value="Two">GREEN</asp:ListItem>
<asp:ListItem Value="Three">BLUE</asp:ListItem>
</asp:CheckBoxList>
我使用下面的代码来获取值,但它得到了项目的文本
List<ListItem> selectedInterest = new List<ListItem>();
foreach (ListItem item in ChkAreaOfInterest.Items)
if (item.Selected) selectedInterest.Add(item);
string sCheckedValue = string.Join(",", selectedInterest);
【问题讨论】:
-
只需 0.39 秒的谷歌搜索 "C# CheckBoxList" 和另外几秒钟的阅读时间给我这个:
var sCheckedValue = string.Join(",", ChkAreaOfInterest.Items.Where(i => i.Selected).Select(i => i.Value)); -
@我收到了这个
System.Web.UI.WebControls.ListItemsCollection does not contain a defination for Where.....的错误 -
哦,当然,再多一点 LINQ:
var sCheckedValue = string.Join(",", ChkAreaOfInterest.Items.OfType<ListItem>().Where(i => i.Selected).Select(i => i.Value)); -
@vasily.sib,是的,它有效,你能把它作为答案发布,以便我可以将它标记为正确答案..
标签: c# asp.net webforms checkboxlist