2012-10-24 39 views
1

我喜歡尋找單選按鈕後,就知道我是如何使用單選按鈕的CheckedChanged屬性時的單選按鈕出現在GridView和這個GridView控件本身是1的用戶控制和用戶的內控制在詳細視圖控件內部。如何定義單選按鈕的CheckedChanged屬性在另一個控制

之前,我已經學會了如何我必須找到另一個控制單選按鈕控制。但找到後,我不知道該怎麼做的CheckedChanged屬性是什麼?

protected void btnShowAddTransmittaltoCon_Click(object sender, EventArgs e) 
{ 
    Transmittallistfortest transmittalList = (Transmittallistfortest)DetailsView1.FindControl("Transmittallistfortest1"); 
    GridView g3 = transmittalList.FindControl("GridViewTtransmittals") as GridView; 
    foreach (GridViewRow di in g3.Rows) 

    { 

     RadioButton rad = (RadioButton)di.FindControl("RadioButton1"); 
     //Giving Error:Object reference not set to an instance of an object. 
     if (rad != null && rad.Checked) 
     { 
      var w = di.RowIndex; 

      Label1.Text = di.Cells[1].Text; 
     } 

回答

0

替換此

RadioButton rad = (RadioButton)di.FindControl("RadioButton1"); 

與此:

RadioButton rad = di.FindControl("RadioButton1") as RadioButton; 

你不會得到一個例外,但它可能會返回NULL - 在這種情況下,它會在if被抓聲明:rad != null

使用as關鍵字的全部要點是:

爲=>不會拋出異常 - 它只是報告無效。


順便說一句:你應該獲取RadioButton這樣:

if(di.RowType == DataControlRowType.DataRow) 
{ 
    RadioButton rad = di.FindControl("RadioButton1") as RadioButton; 
} 

要定義CheckedChange事件,這樣做:

//rad.Checked = true; 

rad.CheckedChanged += new EventHandler(MyCheckedChangeEventHandler); 

然後定義處理程序:

protected void MyCheckedChangeEventHandler)(object sender, EventArgs e) 
{ 
    RadioButton rb = (RadioButton)sender; 

    if (rb.Checked) 
    { 
     // Your logic here... 
    } 
} 
+0

其實我的問題是如何尋找單選按鈕後,確定單選按鈕的CheckedChanged屬性? – masoud

+0

好的。因爲你的問題有評論,所以我認爲你得到了一個例外。檢查編輯的答案... –

相關問題