Вы всегда можете получить 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.