2011-05-25 100 views
0

我有一個下拉列表(其值爲'CMC'&'CHF')和兩個文本框。 當我從下拉列表中選擇一個選項時,出現一個文本框控件(可見性用javascript編寫)。 當我在這個文本框中輸入一個數字並點擊sumbit/next按鈕時,它應該將這些信息保存在數據庫中。 該邏輯適用於一個選項,但不適用於其他選項! 這兩個選項都帶有文本框,只有在選中相應選項時纔可見。 前端邏輯工程(即知名度),但是當我輸入一個號碼爲「txt_HFMN」(對於該文本框的下拉菜單出現 的選項是「瑞士法郎」和「CMC」的文本框「txt_HFNumber」)不正確的輸入數據庫

這裏是.cs文件代碼:

if (txt_HFNumber != null) 
    { 

     strHFNUM = txt_HFNumber.Text; 

    } 
    else if (txt_HFMN != null) 
    { 
     strHFNUM = txt_HFMN.Text; 

    } 
    else 
    { 
     strHFNUM = string.Empty; 
    } 

我試圖調試它,以針點的誤差。上述條件僅檢查'txt_HFNumber',它從不檢查'else if'部分。即使我在'txt_HFMN'中輸入了一個值,它會檢查'txt_HFNumber',並且由於 'txt_HFNumber'在前端不存在,所以在該文本框中沒有輸入值,它會在數據庫中插入'null'而不是'txt_HFMN'輸入的值!

建議。

非常感謝您的幫助。

回答

1

我想你可能想要更多的東西像這樣的一點,你檢查,看看是否文本框本身存在:

if (!string.IsNullOrEmpty(txt_HFNumber.Text)) 
    {  strHFNUM = txt_HFNumber.Text; } 
... 
+0

謝謝帕迪。這種情況奏效。感謝你的幫助 – userstackoverflow 2011-05-25 17:18:38

0
if (txt_HFNumber != null) { 
     strHFNUM = txt_HFNumber.Text; 
} else { 
     strHFNUM = string.Empty; 
} 

    if (txt_HFMN != null) { 
     strHFNUM = txt_HFMN.Text; 
    } else { 
    strHFNUM = string.Empty; 
    } 

如果要設置txt_HFNumber和txt_HFNumber你將永遠不會得到你的語句中的txt_HFNumber,單獨的2,但重點是你設置相同的字符串兩次,strHFNUM正在過度騎行,所以如果你有這兩個場合設置只有txt_HFMN將被設置爲strHFNUM

或者你可以做

if (txt_HFNumber != null && xt_HFMN == null) { 
      strHFNUM = txt_HFNumber.Text; 
     } else { 
      strHFNUM = txt_HFMN.Text; //IF xt_HFMN is NULL it will set to null thus setting the empty string is irrelevent 
     }