Как получить значение выбранной строки с помощью радиокнопки в виде сетки одним нажатием кнопки - PullRequest
0 голосов
/ 02 апреля 2012

Мне нужно получить значение выбранной строки радиокнопки в виде сетки.выбранное значение присваивается текстовому полю.мой код

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

          }

проблема в том, что значение gvRow назначено как ноль.

кнопка ссылки не находится внутри gridview.кнопка linkview и текстовое поле находятся внутри пользовательских элементов управления.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012
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;
        }
    }           
}
2 голосов
/ 02 апреля 2012

Вы всегда можете получить GridViewRow через NamingContainer отправителя:

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 там равен нулю, возможно, потому что событие GridView SelectedIndexChanged запускается после события нажатия LinkButton.

...