asp.net中的列表框控件

时间:2011-02-08 09:47:26

标签: c# asp.net

我有两个列表框控件Listbox1和Listbox2。我想获得从c#中的Listbox1中选择的Listbox2的项目数?假设我在Listbox1中共有7个项目,而我在Listbox2控件中只选择了3个项目。我想在C#中获取Listbox2的项目数?

4 个答案:

答案 0 :(得分:2)

不知道为什么没有人使用Linq。


@Riya:我理解你的要求,你想要列表框2中存在于ListBox2项中的 SelectedItems的计数。如果是这样的话。

var filteredListCount = ListBox2.Items
    .Cast<ListItem>()
    .Where(li => 
        ListBox1.Items
            .Cast<ListItem>()
            .Where(item => item.Selected)
            .Select(item => item.Text).Contains(li.Text))
    .Count();

答案 1 :(得分:1)

更改选择时循环选择项目

这样的事情:

     int count = 0;    
        foreach(string itemListbox2 in listBox2.Items)
        {
            if (itemListbox2.Selected)
            {    
                 foreach(string itemListbox1 in listbox1.Items)
                 {
                   if (itemListbox1.Selected)
                   {
                      if(itemListbox1.Equals(itemListbox2))
                      {
                        count++;
                        break;
                      }
                   }
                }
            }
        }

答案 2 :(得分:0)

您可以循环使用ListBox1中的所有选定项目,并在循环内部搜索ListBox2中具有相同值的项目,如果选中它,则会递增计数器。

答案 3 :(得分:0)

asp.net中的列表框没有SelectedItems。因此循环遍历Items并检查它们是否被选中。如果是这样,请在另一个列表中找到具有相同值的项目。如果找到相应的项目,请计算它。像这样:

int count = 0;
foreach (ListItem item in secondListBox.Items)
{
    if (item.Selected)
    {
        ListItem itemWithSameValue = firstListBox.Items.FindByValue(item.Value);
        if (itemWithSameValue != null)
        {
            count++;
        }
    }
}