2010-06-14 59 views
0

此代码将显示列表框中的选定值。例如。如果我选择项目1我将得到以下输出:您已选择项目1如何检查C#中未选择列表框的选定值?

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

但是,如果我不选择任何内容,点击提交按钮,我会得到:您选择

我需要什么,使之显示“你没有选择任何东西。请至少选择1项。“

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

+0

...的WebForms或的WinForms? – 2010-06-14 00:23:21

+0

@Nick:最后用'
'来判断,我会说WebForms。但同意,OP应该对此更加具体。 – 2010-06-14 00:24:27

+0

@Fyodor - Doh,好点,甚至没有看到那里的结局。 – 2010-06-14 00:25:39

回答

5

更新:
下面的答案实际上是不正确(留给历史)。一旦您访问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.我已经尝试了0,并且为null,但它不起作用。谢谢! – 2010-06-14 00:25:12

+0

@Sahat:这个答案实际上是不正确的,因为我刚刚通过查看Reflector找到了答案。请参阅我的更新以获取正确答案。 – 2010-06-14 00:32:50

+0

我明白你的意思是Fyodor,但它可以在第一次发布的代码中使用。它表明你没有选择任何东西,就像我想要的那样。也许这是ASP.NET 4.0的新功能? – 2010-06-14 00:38:15