Recently I was looking for a way to retrieve a particular column based on it's column name (instead of fixed cellnumber) when a row in a GridView has been selected. I came up with the following which does the trick:
protected void gvGeneratedReports_SelectedIndexChanged(object sender, EventArgs e)
{
GridView gv = (GridView)sender;
DataRowView rowView = (DataRowView)gv.SelectedRow.DataItem;
string outputType = rowView["OutputType"].ToString();
}