【问题标题】:Why are SelectedItems missing in IntelliSense on ListBox?为什么 ListBox 上的 IntelliSense 中缺少 SelectedItems?
【发布时间】:2012-01-19 09:52:23
【问题描述】:

我在这里遗漏了什么吗? 我在ListBox 控件上找不到SelectedItems 属性。我正在尝试遍历其中的选定项目。是的,SelectionMode 属性设置为多个,这并不重要。

为什么我“看不到”房产?

【问题讨论】:

  • 那么有什么问题?
  • 问题是我找不到所选项目。这不是很明显吗?
  • 2 个人肯定错过了什么

标签: c# asp.net .net .net-4.0 listbox


【解决方案1】:

重要提示:我误认为这是一个 Windows 窗体问题。 对于System.Web.UI.WebControls.ListBox,以下是正确的。这是关于 Windows 窗体 ListBox

它是does exist,但标有

[BrowsableAttribute(false)]

所以 IntelliSense 不会向您显示它,但您仍然可以使用它。


也适用于 ASP.NET System.Web.UI.WebControls.ListBox 的适当解决方案是:

var selectedItems = from item in myListBox.Items.OfType<ListItem>()
                    where item.Selected;

【讨论】:

  • 无论如何你都不能使用它,我得到一个编译错误'System.Web.UI.WebControls.ListBox'不包含'SelectedItems'的定义
  • 另外,您的链接是指向 System.Windows.Forms 中的列表框的链接,而不是 ASP.NET
  • 哦.. 我真的以为这是一个 Windows 窗体问题。我忽略了 asp.net 标签。奇怪的是我的回答被采纳了。
  • 好的,我删除了反对票,因为您正确更新了答案。也许它“有点”是一个答案,因为 OP 要求 SelectedItems 属性,但它在 asp.net 中不存在,仅在 win 形式中存在。
  • 很抱歉给您带来了困惑。我没有实际测试它,只是相信你的话。我想出了另一个解决方案。
【解决方案2】:

感谢 Noah1989 指出 SelectedItems 属性在 WebForms 中可用。 要克服这个问题,只需遍历列表框中的所有项目,并询问它们是否被选中:

ListItemCollection collection = new ListItemCollection();
            foreach (ListItem item in ListBox1.Items)
            {
                if (item.Selected)
                    collection.Add(item);
            }

或者正如诺亚所说 - 只需使用 LINQ:from item in items where item.IsSelected

【讨论】:

  • 由于您使用的是 .net 4.0,您仍然可以使用基于 LINQ 的解决方案而不是那个循环(这看起来像是旧 .net 时代的陌生人)
  • @noah1989 哦,没有看到您使用 linq 更新的答案。我会将您的问题标记为已接受的答案。
  • 所以你责怪 Noah1989 又名 @StefanPaulNoack 因为该属性在 WebForms 中不可用? ;)
  • @Nurp 哈哈哈看起来像。英语不好。
  • 很抱歉没有在 WebForms 中提供 SelectedItems ;-)
猜你喜欢
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多