Это то, что я понял ... Я написал небольшую функцию для получения индекса столбца на основе текста заголовка.
GridView gv = (GridView)sender //inside OnRowDataBound
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[GetIndex(gv, "Print")].Controls.Count == 0)
{
CheckBox cbPrint = new CheckBox();
cbPrint.ID = "chkPrint";
cbPrint.Checked = false;
e.Row.Cells[GetIndex(gv, "Print")].Controls.Add(cbPrint);
}
}
Метод GetIndex:
public static int GetIndex(GridView gv, string columnText)
{
for (int i = 0; i < gv.Columns.Count; i++)
if (gv.Columns[i].HeaderText == columnText)
return i;
return -1;
}
Если столбец с таким текстом заголовка есть, он вернет индекс. Если нет, то он вернет -1, и вы получите ошибку ... поэтому здесь нужна некоторая обработка ошибок, если вы не знаете, будет ли столбец или нет.