复选框列表选中的值

use*_*937 2 c# asp.net

我有一个包含3个项目的复选框列表.我想将复选框列表的所有选中值都放到一个字符串中.我尝试了以下代码,但它没有给出正确的结果.任何人都可以帮助我.

<asp:checkboxlist id="interestedIN" runat="server" repeatlayout="table"
    cellspacing="3" cellpadding="3" Font-Size="12px">
  <asp:ListItem id= "social" runat="server"  text=" Sociology" Selected="false" />
  <asp:ListItem id="zoo" runat="server"  text=" Zoology " Selected="false" />
  <asp:ListItem id="math" runat="server"  text=" mathematics " Selected="false" />
</asp:checkboxlist>
Run Code Online (Sandbox Code Playgroud)

这是C#i实现的:

foreach (ListItem li in interestedIN.Items)
        {
            if (li.Selected)
            {
                interestIN = interestedIN.SelectedItem.Value + "," + interestIN;
            }
        }
Run Code Online (Sandbox Code Playgroud)

输出:如果用户选择社会学和动物学,我希望输出为"社会学,动物学"但我的上述代码给了我以下结果"社会学,社会学".

Nar*_*ian 7

我创建了一个Custom CheckBoxList,其中包含一个属性.很高兴在控件中使用它,这样您就不必每次都编写代码.自定义控件允许您引用四个属性:

  • SelectedValuesString - 所选值的逗号分隔字符串.
  • SelectedValuesAsIntegers - 所选值的整数列表.
  • SelectedValuesAsStrings - 所选值的字符串列表.
  • SelectedItemTextAsStrings - 所选项目的文本的字符串列表.

这是SelectedValuesAsString属性.

public string SelectedValuesString
{
    get
    {
        return String.Join(",",this.Items.Cast<ListItem>().Where(i => i.Selected).Select(i=>i.Value));
    }
}
Run Code Online (Sandbox Code Playgroud)

要查看Custom CheckBoxList Control上的帖子,请访问http://www.foliotek.com/devblog/extended-checkboxlist-control/


Man*_*jan 5

希望以下功能可以帮助您获得结果

for (int i = 0; i < interestedIN.Items.Count; i++)
{
   if (interestedIN.Items[i].Selected)
   {
       values += interestedIN.Items[i].Value + ",";
   }
}

values = values.TrimEnd(',');
Run Code Online (Sandbox Code Playgroud)