Asp.net 如何使用gridview中的radiobutton在单击按钮时获取选定行的值

Asp.net 如何使用gridview中的radiobutton在单击按钮时获取选定行的值,asp.net,gridview,radio-button,Asp.net,Gridview,Radio Button,我需要获取gridview中选定的radiobutton行的值。选定的值将指定给文本框。我的代码是 protected void lnBTNDone_Click(object sender, EventArgs e) { GridViewRow gvRow = grdEventDetails.SelectedRow; txtEventId.Text = gvRow.Cells[0].Text; }

我需要获取gridview中选定的radiobutton行的值。选定的值将指定给文本框。我的代码是

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

          }
问题是gvRow值被指定为null


链接按钮不在gridview内。gridview n link按钮和文本框位于用户控件内。

您始终可以通过发件人的:

假设
LinkButton
位于所选行中

顺便说一句,我还不确定为什么
SelectedRow
在那里是空的,可能是因为GridView的
SelectedIndexChanged
事件是在LinkButton的click事件之后触发的。

受保护的void lnBTNDone\u click(对象发送方,事件参数e)
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;
        }
    }           
}
{ 对于(int i=0;i
获取此错误无法将类型为“ASP.usercontrols\u usc\u eventidparameter\u ascx”的对象强制转换为类型为“System.Web.UI.WebControls.GridViewRow”。@kk1076:那么我的假设不正确。我以为链接按钮在GridView中。然后您应该告诉我们链接按钮的位置以及如何在gridview中选择行。链接按钮不在gridview中。但是gridview、textbox和链接按钮都放在用户控件页面中。如果(!IsPostBack)(正确的方式是什么),您如何选择gridview的行以及是否仅对gridview进行数据绑定

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;
        }
    }           
}