У меня есть сетка с несколькими ItemTemplates. Первый содержит флажок, остальные содержат текстовые поля.
Затем я динамически добавил несколько связанных элементов управления, таких как:
BoundField bdfPrivName = new BoundField();
clsUtilities.SetBoundFieldCenter(ref bdfPrivName, "PrivName", "Priv Name");
BoundField bdfDescription = new BoundField();
clsUtilities.SetBoundFieldLeft(ref bdfDescription, "PrivDesc", "Description");
BoundField bdfLive = new BoundField();
clsUtilities.SetBoundFieldCenter(ref bdfLive, "Live","Active?");
grdExisting.Columns.Add(bdfPrivName);
grdExisting.Columns.Add(bdfDescription);
grdExisting.Columns.Add(bdfLive);
Затем я использую FindControl (), чтобы найти флажки и текстовые поля и выполнить мою логику на основе результата
foreach (GridViewRow gvr in grdMissing.Rows)
{
mckbAny = (CheckBox)gvr.FindControl("ckbAdd");
mtxtApplyDate = (TextBox)gvr.FindControl("txtAddApplyDate");
mtxtDateToAdd = (TextBox)gvr.FindControl("txtAddDateToAdd");
mtxtDateToRemove = (TextBox)gvr.FindControl("txtAddDateToRemove");
}
и т.д.
Это все работало нормально. Затем я получил запрос на размещение связанных полей во втором, третьем и четвертом столбцах после флажка и перед текстовыми полями. Я обнаружил, что это легко сделать, изменив надстройки на вставки следующим образом:
grdExisting.Columns.Insert(1, bdfPrivName);
grdExisting.Columns.Insert(2, bdfDescription);
grdExisting.Columns.Insert(3, bdfLive);
Все выглядело нормально, но FindControl () все они не работают.
Пожалуйста, предложите решение или обходной путь.
Заранее спасибо.