элементы управления являются вложенными.у вас есть ваша страница, внутри страницы есть больше элементов управления, некоторые из этих элементов управления содержат сами элементы управления.метод FindControl осуществляет поиск только в текущем контейнере именования, или если вы выполняете Page.FindControls, если будете искать только элементы управления в Page, а не в элементах управления внутри этих элементов управления, поэтому вы должны искать рекурсивно.
, если вы знаетекнопка находится внутри заполнителя содержимого, и вы знаете его идентификатор, который вы можете сделать:
ContentPlaceHolder cph = Page.FindControl("ContentPlaceHolder1");
Response.Write(((Button)cph.FindControl("a")).Text);
в качестве альтернативы, если ваши элементы управления глубоко вложены, вы можете создать рекурсивную функцию для поиска этого:
private void DisplayButtonText(ControlCollection page)
{
foreach (Control c in page)
{
if(((Button)c).ID == "a")
{
Response.Write(((Button)c).Text);
return null;
}
if(c.HasControls())
{
DisplayButtonText(c.Controls);
}
}
изначально вы бы пропустили эту страницу. Контроль