2014-09-05 54 views
0

我有一個單選按鈕列表通過這種方法與數據綁定它:單選按鈕列表中選擇項目值ISSU

DataTable dt1 = BeeStatus.GetAllBeeStatus(); 
radio1.DataSource = dt1; 
radio1.DataTextField = "beeStatus"; 
radio1.DataValueField = "beestatusID"; 
radio1.DataBind(); 

,當我試圖讓所選項目的值,通過寫

int st = Convert.ToInt32(radio1.SelectedItem.value); 

它給此錯誤:

['/'應用程序中的服務器錯誤。

未將對象引用設置爲對象的實例。

Description: An unhandled exception occurred during the execution of the current 
      web request. 
Please review the stack trace for more information about the error and where 
    it originated in the code. ] 

有幫助嗎?

異常詳細信息: System.NullReferenceException:未將對象引用設置爲對象的實例。

+2

'radio1.SelectedItem.value'的某些部分爲空,請在調試器中對其進行檢查,例如,如果沒有選定值,則radio1.SelectedItem將爲空。在嘗試轉換爲int之前,您需要進行空檢查。 – 2014-09-05 11:22:25

+0

我已經檢查過,同樣的錯誤。 – alim91 2014-09-05 11:37:55

回答

1

讓我猜測:你也在回發上阻止RadioButtonList數據綁定,從而防止事件被觸發。檢查IsPostBack屬性:

protected void Page_Load(Object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
     DataTable dt1 = BeeStatus.GetAllBeeStatus(); 
     radio1.DataSource = dt1; 
     radio1.DataTextField = "beeStatus"; 
     radio1.DataValueField = "beestatusID"; 
     radio1.DataBind(); 
    } 
} 

否則radio1.SelectedItemnull因爲沒有什麼選擇了。

+0

沒有時,單選按鈕被選中,但沒有值。 – alim91 2014-09-05 11:39:11

+0

@ alim91:你在'radio1.SelectedItem.Value'處得到異常,因爲'radio1.SelectedItem'爲'null',所以你不能訪問'item.Value'。爲什麼它沒有被選中的一個原因是你之前調用過'radio1.DataBind();'。這就是爲什麼我建議使用'IsPostBack'屬性。 – 2014-09-05 11:55:37

相關問題