加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ListBox中的选定项目是否有ASP.NET集合?

发布时间:2020-12-16 03:56:35 所属栏目:asp.Net 来源:网络整理
导读:在我的Asp.NET网站上,我有一个允许多个选择的列表框.我希望能够提出类似的问题: blah = myListbox.selectedItems; 并获得在列表框中选择的项目的集合.看起来在Windows Forms世界中有一种方法,但不适用于asp.NET.有没有比这更简单的方法来迭代Items集合寻找
在我的Asp.NET网站上,我有一个允许多个选择的列表框.我希望能够提出类似的问题:

blah = myListbox.selectedItems;

并获得在列表框中选择的项目的集合.看起来在Windows Forms世界中有一种方法,但不适用于asp.NET.有没有比这更简单的方法来迭代Items集合寻找选定的值?

解决方法

这样的东西可以让你得到所选的项目:

List<ListItem> selectedItems = new List<ListItem>();
    int[] selectedItemsIndexes = myListbox.GetSelectedIndices();
    foreach (int selectedItem in selectedItemsIndexes)
    {
        selectedItems.Add(myListbox.Items[selectedItem]);
    }

作为扩展方法:

public static class ListBoxExtensions
{

    public static List<ListItem> GetSelectedItems(this ListBox listbox)
    {
        List<ListItem> selectedItems = new List<ListItem>();
        int[] selectedItemsIndexes = listbox.GetSelectedIndices();
        foreach (int selectedItem in selectedItemsIndexes)
        {
            selectedItems.Add(listbox.Items[selectedItem]);
        }
        return selectedItems;
    }
}

所以现在你可以打电话:

List<ListItem> selectedItems = myListBox.GetSelectedItems();

正如olle所说,扩展方法可能是Linq-ified,而且你甚至进一步缩小到:

public static class ListBoxExtensions
{

    public static IEnumerable<ListItem> GetSelectedItems(this ListBox listbox)
    {
        var selectedItems = from ListItem i in myListbox.Items where i.Selected select i
        return selectedItems;
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读