2012-04-02 6 views
-1

gridview에서 radiobutton의 선택된 행의 값을 가져와야합니다. 선택한 값이 텍스트 상자에 지정됩니다. 내 코드는버튼의 gridview에서 radiobutton을 사용하여 선택한 행의 값을 얻는 방법

protected void lnBTNDone_Click(object sender, EventArgs e) 
      { 
       GridViewRow gvRow = grdEventDetails.SelectedRow; 
       txtEventId.Text = gvRow.Cells[0].Text; 

      } 

입니다. 문제는 gvRow 값이 null로 할당되어 있습니다.

linkbutton이 gridview 내부에 없습니다. gridview n linkbutton 및 텍스트 상자는 사용자 정의 컨트롤 안에 있습니다.

protected void lnBTNDone_Click(object sender, EventArgs e) 
{ 
    LinkButton lnBTNDone = (LinkButton)sender; 
    GridViewRow row = (GridViewRow)lnBTNDone.NamingContainer; 
    txtEventId.Text = row.Cells[0].Text; 
} 

LinkButton 선택한 행에 있다고 가정 :

답변

2
protected void lnBTNDone_Click(object sender, EventArgs e) 
{ 
    for (int i = 0; i < grdEventDetails.Rows.Count; i++) 
    { 
     RadioButton rb = (grdEventDetails.Rows[i].FindControl("grdRdo")) as RadioButton; 
     if (rb.Checked == true) 
     { 
      txtEventId.Text = grdEventDetails.Rows[i].Cells[1].Text; 
     } 
    }   
} 
+0

격자보기에서 설정 한 가시성 false 설정에 대해 작동하지 않습니다. –

2

항상 보낸 사람의 NamingContainer을 통해 GridViewRow를 얻을 수 있습니다.

Btw, 왜 내가 SelectedRow이 null인지 모르겠다. 아마도 GridView의 SelectedIndexChanged 이벤트가 LinkButton의 click 이벤트 후에 트리거되기 때문이다.

+0

'System.Web.UI.WebControls.GridViewRow'를 입력 유형 'ASP.usercontrols_usc_eventidparameter_ascx'의 개체를 캐스팅 할 수이 오류가 없습니다지고. – kk1076

+0

@ kk1076 : 내 가정은 틀린 것입니다. 나는 LinkButton이 GridView에 있다고 생각했다. 그런 다음 링크 버튼의 위치와 gridview에서 행을 선택하는 방법을 알려줘야합니다. –

+0

링크 버튼이 gridview 안에 없습니다. gridview, 텍스트 상자 및 링크 단추는 사용자 정의 컨트롤 페이지에 배치됩니다. – kk1076

관련 문제