Метод FindControl
ищет в текущем элементе управления только дочерние элементы.
Если вы не знаете, где в иерархии страниц находятся элементы управления, вам потребуется выполнить рекурсивный поиск, которыйвероятно, если вы используете шаблонный элемент управления, такой как TabContainer
.
Как я уже писал ранее на аналогичный ответ :
private Control FindControlRecursive(Control rootControl, string controlID)
{
if (rootControl.ID == controlID) {
return rootControl;
}
foreach (Control controlToSearch in rootControl.Controls)
{
Control controlToReturn =
FindControlRecursive(controlToSearch, controlID);
if (controlToReturn != null) {
return controlToReturn;
}
}
return null;
}
Как только выЕсли у вас есть контроль, вы должны разыграть его, используя as
, а затем проверить на ноль на случай, если это не совсем то, что вы ожидали:
var tabContainer = FindControlRecursively(myPage, "Workflow_TabContainer")
as AjaxControlToolkit.TabContainer
if (null != tabContainer) {
// Do Stuff
}