如何获取文本以外的 CheckBoxList 项的值
How to get value of CheckBoxList items other than text
我是一个简单的 Web 表单,它具有带多项选择的 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);
当您 string.Join(",", selectedInterest)
- 运行时将对 selectedInterest
中的每个项目调用 .ToString()
实际上 returns .Text
属性 的值.
相反,您需要加入 ListItem.Value
属性值。这可以用 LINQ 完成:
var selectedInterest = ChkAreaOfInterest.Items.OfType<ListItem>().Where(i => i.Selected);
var sCheckedValue = string.Join(",", selectedInterest.Select(i => i.Value));
为什么你不能试试这个
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);
}
}
我是一个简单的 Web 表单,它具有带多项选择的 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);
当您 string.Join(",", selectedInterest)
- 运行时将对 selectedInterest
中的每个项目调用 .ToString()
实际上 returns .Text
属性 的值.
相反,您需要加入 ListItem.Value
属性值。这可以用 LINQ 完成:
var selectedInterest = ChkAreaOfInterest.Items.OfType<ListItem>().Where(i => i.Selected);
var sCheckedValue = string.Join(",", selectedInterest.Select(i => i.Value));
为什么你不能试试这个
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);
}
}