【问题标题】:How do I check if selected value of the ListBox is not selected in C#?如何检查列表框的选定值是否未在 C# 中选择?
【发布时间】:2010-06-14 00:20:15
【问题描述】:

此代码将显示从列表框中选择的值。例如。如果我选择 Item 1,我将得到以下输出:You have selected Item 1.

Label1.Text = "You have selected " + DropDownList1.SelectedValue + "<br />";

但是如果我没有选择任何东西并点击提交按钮,我会得到:You have selected

我需要什么让它显示“你没有选择任何东西。请至少选择一项。”

更新:我正在使用 ASP.NET WebForms。

【问题讨论】:

    标签: c# asp.net drop-down-menu validation


    【解决方案1】:

    更新:
    下面的答案实际上是不正确的(留给历史)。一旦访问SelectedIndex 属性,当没有选择任何内容时,列表将立即选择第一个项目,并返回零。

    剩下的几乎唯一的选择就是在列表的最前面放置某种“虚拟项目”,然后检查SelectedIndex == 0

    不过,上述情况仅适用于DropDownList。从ListControl 派生的其他控件(即ListBoxRadioButtonList)将正确显示SelectedIndex == -1

    这是错误答案
    检查SelectedIndex 属性。如果未选择任何内容,则其值为 -1。

    if ( DropDownList1.SelectedIndex < 0 )
    {
        Label1.Text = "You have not selected anything";
    }
    else
    {
        Label1.Text = "You have selected " + DropDownList1.SelectedValue;
    }
    

    【讨论】:

    • 哦,你去。所以它必须小于 0。我试过用 0 和 null,但它没有用。谢谢!
    • @Sahat:这个答案实际上是不正确的,正如我刚刚通过查看 Reflector 发现的那样。请查看我的更新以获得正确答案。
    • 我明白你的意思 Fyodor,但它适用于你第一次发布的代码。它表明你没有选择任何东西,就像我想要的那样。也许是 ASP.NET 4.0 的新特性?
    • 好吧,我实际上也在研究 ASP.NET 4.0。也许您有其他类型的控制,而不是DropDownList
    • 我想我使用名为 DropDownList1 的 ListBox 控件让包括我自己在内的所有人都感到困惑。正是 ListBox 这就是它可能让我使用该代码的原因。
    【解决方案2】:

    小心!:

    使用 SelectedIndex 属性 以编程方式指定或确定 所选项目的索引来自 DropDownList 控件。 一个项目是 始终在 DropDownList 中选择 控制。您无法清除 从列表中的每个项目中选择 同时。

    http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.dropdownlist.selectedindex.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 2013-08-02
      • 2011-01-15
      • 1970-01-01
      • 2018-02-09
      • 1970-01-01
      相关资源
      最近更新 更多