如何在按钮单击中使用gridview中的单选按钮获取所选行的值

时间:2012-04-02 11:38:40

标签: 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;

          }

问题是gvRow值被指定为null。

linkbutton不在gridview内。 gridview n linkbutton和文本框位于用户控件内。

2 个答案:

答案 0 :(得分:2)

您始终可以通过发件人NamingContainer获取GridViewRow

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

假设LinkButton位于所选行中。

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

答案 1 :(得分: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;
        }
    }           
}