【问题标题】:How to get value of CheckBoxList items other than text如何获取除文本以外的 CheckBoxList 项目的值
【发布时间】: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 =&gt; i.Selected).Select(i =&gt; i.Value));
  • @我收到了这个System.Web.UI.WebControls.ListItemsCollection does not contain a defination for Where.....的错误
  • 哦,当然,再多一点 LINQ:var sCheckedValue = string.Join(",", ChkAreaOfInterest.Items.OfType&lt;ListItem&gt;().Where(i =&gt; i.Selected).Select(i =&gt; i.Value));
  • @vasily.sib,是的,它有效,你能把它作为答案发布,以便我可以将它标记为正确答案..

标签: c# asp.net webforms checkboxlist


【解决方案1】:

当您string.Join(",", selectedInterest) - 运行时将对selectedInterest 中的每个项目调用.ToString(),这实际上返回.Text 属性的值。

相反,您需要加入 ListItem.Value 属性值。这可以通过 LINQ 完成:

var selectedInterest = ChkAreaOfInterest.Items.OfType<ListItem>().Where(i => i.Selected);
var sCheckedValue = string.Join(",", selectedInterest.Select(i => i.Value));

【讨论】:

    【解决方案2】:

    你为什么不能试试这个

     List<string> selectedInterest = new List<string>();
     for (int i = 0; i < ChkAreaOfInterest.Items.Count - 1; i++ )
     {
         if (ChkAreaOfInterest.Items[i].Selected)
         {
            selectedInterest.Add(ChkAreaOfInterest.Items[i].Value);
         }
     }
    

    【讨论】:

      猜你喜欢
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多