2010-06-14 56 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