2015-10-17 96 views
1

我正在嘗試從一個DataList值在一些公式如何從c#中的datalist獲取值?

使用它,所以我嘗試此代碼,我把它在OnClick按鈕事件:

float fQ = float.Parse(Qtytb.Text); 
float ftotal; 
float fitem = float.Parse(pricelst.SelectedItem.ToString()); 
ftotal = fQ * fitem; 
totaltb.Text = ftotal.ToString(); 

但它給了我空指針此時例外

(float fitem = float.Parse(pricelst.SelectedItem.ToString());) 

我該如何獲得該功能?

+0

你應該檢查'pricelst.SelectedIndex> = 0'。 –

回答

0

您需要檢查pricelstpricelst.SelectedItem是否爲空並適當地處理這些情況。例如,您可以使用float.TryParse(...)或空合併運算符??

作爲一個例子:

鑑於類

private class Foo 
    { 
     public string SelectedItem { get; set; } 
    } 

檢查空像這樣:

美孚pricelst =新的Foo();

float fitem; 

    if(float.TryParse(pricelst.SelectedItem, out fitem)) 
    { 
     // set defaults here 
     fitem = 0; 
    } 
1

下面添加驗證

if(pricelst.SelectedItem != null) 
{ 
    //your code.... 

} 
0

嘗試

var selectedItemValue = pricelst.SelectedItem == null ? "0" : pricelst.SelectedItem.ToString(); 
var selectedItemFloat = float.Parse(selectedItemValue); 
var fQ = float.Parse(Qtytb.Text); 
var ftotal = fQ * selectedItemFloat; 
totaltb.Text = ftotal.ToString(); 
+0

它給我總共「0」!有沒有其他方法可以獲得數據列表中元素的值? –

+0

@SuperGirl沒有意義......這意味着pricelst.SelectedItem爲空,換句話說它沒有設置。也許你應該顯示代碼......你認爲你將它設置爲一個值。 – Seabizkit

相關問題