Добрый день, все,Доступ к управлению содержимым в C# при использовании мастер-страниц
Я строю страницу в ASP.NET и используя мастер-страницы в процессе.
У меня есть имя владельца содержимого «cphBody» на моей странице мастера, в котором будет содержаться тело каждой страницы, для которой эта страница мастера является главной страницей.
На веб-странице ASP.NET у меня есть тег Content (ссылка «cphBody»), который также содержит некоторые элементы управления (кнопки, элементы управления Infragistics и т. Д.), И я хочу получить доступ к этим элементам управления в файле CodeBehind. Однако я не могу сделать это напрямую (this.myControl ...), так как они вложены в тег Content.
Я нашел обходное решение с методом FindControl.
ContentPlaceHolder contentPlaceHolder = (ContentPlaceHolder) Master.FindControl("cphBody");
ControlType myControl = (ControlType) contentPlaceHolder.FindControl("ControlName");
Это работает просто отлично. Тем не менее, я подозреваю, что это не очень хороший дизайн. Вы, ребята, знаете более элегантный способ сделать это?
Спасибо!
Guillaume Gervais.
вы пытаетесь доступ к элементам управления из коды страницы по контенту или код мастер-странице позади? – wulimaster
Код CodeBehind. –
Это странно. Вы должны иметь возможность напрямую обращаться к своим элементам управления с помощью кода, содержащегося в вашей контентной странице, если только они не динамически создаются и не добавляются. –