Установите содержимое <asp:content> в C#
-
18-09-2019 - |
Вопрос
В настоящее время я учусь использовать MasterPages и ContentPlaceHolders в ASP.NET 3.5 и C# - и прямо сейчас я отчаянно пытаюсь редактировать содержимое asp:Content-Control с помощью своего программного кода.
Предыстория такова;Как только кнопка будет нажата, я хочу, чтобы asp:Content был очищен и заполнен динамически сгенерированным контентом через *.cs-файл.
Но я не могу понять, как получить доступ к asp:Content-Control ни через его идентификатор, ни через Page.FindControl и т. д.
Итак, как можно редактировать содержимое asp:Content-Control с помощью программного кода?
Решение
Вы можете получить доступ к ContentPlaceholder, используя FindControl не на объекте страницы, а на его главной странице.
System.Web.UI.MasterPage masterPage = this.Master;
ContentPlaceHolder pageContent;
pageContent = (ContentPlaceHolder)masterPage.FindControl("YourContentPlaceholderName");
Однако я бы согласился, что лучше определить панель или заполнитель внутри этого блока и получить к нему прямой доступ, а не пытаться изменить ContentPlaceholder.
Другие советы
Вы можете поместить asp:Panel в ContentPlaceHolder и переместить в него разметку-заполнитель.Таким образом вы сможете получить доступ к контейнеру Panel и манипулировать его содержимым.
Вы забыли добавить runat="server" в свой asp:Content-Control?
С уважением,
М.