在ASP.NET中获取CheckBoxList的选定索引数组的简便方法

时间:2015-10-20 16:59:31

标签: c# asp.net checkboxlist

CheckBoxList类上是否有属性或方法将返回表示所有选定索引的int数组?这是在ASP.NET中。

2 个答案:

答案 0 :(得分:1)

您可以创建一个扩展方法来模拟您想要的行为。这样做的好处是可以在任何列表控件上重复使用它。下面是一个粗略的例子(我只是返回值的字符串列表,你可以返回任何东西,索引,值,整个列表项等)。

public static List<string> SelectedValues(this ListControl lst)
{
    List<string> returnLst = new List<string>();

    foreach (ListItem li in lst.Items)
    {
        if (li.Selected == true)
        {
            returnLst.Add(li.Value);
        }

    return returnLst;
}

答案 1 :(得分:1)

根据MSDN documentation,似乎并不存在。您必须自己迭代这些项目。

这是一种方法。它迭代每个项目,检查它是否被选中,然后将索引添加到列表中。我使用列表是因为列表是可变的而数组不是。然后返回一个数组,我只需在列表中调用public int[] selectedIndexesOfCheckBoxList(CheckBoxList chkList) { List<int> selectedIndexes = new List<int>(); foreach (ListItem item in chkList.Items) { if (item.Selected) { selectedIndexes.Add(chkList.Items.IndexOf(item)); } } return selectedIndexes.ToArray(); }

{{1}}