我需要在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和文本框位于用户控件内。
答案 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
在那里为空,可能是因为在LinkButton的点击事件之后触发了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;
}
}
}