2015-08-27 23 views
0

我有一個下拉列表控件在頁面上,有三個項目,應選擇任何一個,然後他們需要調用一個特殊的條件。我曾嘗試使用if語句和==運算符,但代碼現在似乎被卡住,無法正常工作。用戶將從下拉列表中選擇不是下面的任何項目,但它仍然會將它視爲它在哪裏==到第一個條件。我不知道什麼似乎是這個問題,請如果任何一個可以事先help.Thanks ...比較兩個字符串變量與C#

 if (lbl_status.Text.ToString() == "item 1" || lbl_status.Text.ToString() == "item 2" || lbl_status.Text.ToString() != "item 3") 
       { 
        lb_Warning.Visible = true; 
        lb_Warning.Text = " testing"; 
       } 
       else if (lbl_status.Text.ToString() != "item 1" || lbl_status.Text.ToString() != "item 2" || lbl_status.Text.ToString() != "item 3") 
       { } 
+1

這將有助於如果你發佈一個簡短而完整展示問題的程序。另外:1)使用'lbl_status.Text.ToString()'的局部變量來改善可讀性。 2)你的else if條件不符合你的想法。 (目前還不清楚你真正想要達到什麼目的,但這是毫無意義的,因爲價值總是會*不等於「第1項」*或*不等於「第2項」)。 –

+1

是你確定你在第一行中想要'item = 3'的'!='?順便說一下,我會使用一個期望值/非期望值的數組......在第二次測試中,您需要'&&',而不是'||' –

+0

事實上 - 除「項目3」之外的任何值都會執行'if'語句... –

回答

0

嘗試使用條件與下拉列表的價值,而不是文本

if(lbl_status.SelectedValue =) 
0

如果只有它既不是value1,value2也不是value3 ......那麼你的其他條件只會是真的嗎?
試試這個

if (lbl_status.Text.ToString() == "item 1" || lbl_status.Text.ToString() == "item 2" || lbl_status.Text.ToString() != "item 3") 
{ 
    lb_Warning.Visible = true; 
    lb_Warning.Text = " testing"; 
} 
else if (lbl_status.Text.ToString() != "item 1" || lbl_status.Text.ToString() != "item 2" || lbl_status.Text.ToString() == "item 3") 
{ } 
0

C#字符串比較是大小寫敏感的,例如,"Abc" == "abc" // false

比較忽略大小寫,試試這個:

string.Compare("Abc", "abc", true) == 0 // if 0, the strings are the same 

此外,還要確保你不」 t在開始/結尾處有空格,請使用"string".Trim()將其刪除

0

嘗試refator了一下,他們有一些奇怪的事情(在我的上述評論mentionned),這將有助於避免他們...

//first, create an array of used values, it will makes things clearer 
var items = new[]{"item 1", "item 2", "item 3"}; 

//check if the selected value is in the array 
if (items.Contains(lbl_status.SelectedValue)) { 
    lb_Warning.Visible = true; 
    lb_Warning.Text = " testing"; 
} 
//if the selected value is not in the array, you will enter else 
else { 
    ---- 
}