Установить контент <asp: content> в C #

2

В настоящее время я изучаю использование MasterPages и ContentPlaceHolders в ASP.NET 3.5 и С# - и прямо сейчас я отчаянно пытаюсь редактировать содержимое asp: Content-Control через свой код программирования.

Обоснование этого; Как только нажимается кнопка, я хочу, чтобы asp: Content был очищен и заполнен динамическим сгенерированным контентом через *.cs-File.

Но я не могу понять, как получить доступ к asp: Content-Control, ни через его идентификатор, ни с..FindControl и т.д.

Итак, как вы можете редактировать содержимое asp: Content-Control через ваш программный код?

Теги:
asp.net-3.5
web-controls
contentcontrol

3 ответа

2
Лучший ответ

Вы можете получить доступ к ContentPlaceholder, используя FindControl не на объекте страницы, а на главной странице.

System.Web.UI.MasterPage masterPage = this.Master;
ContentPlaceHolder pageContent;

pageContent = (ContentPlaceHolder)masterPage.FindControl("YourContentPlaceholderName");

Я согласен с тем, что лучше определить панель или местозаполнитель в этом блоке и получить доступ к ней напрямую, а не пытаться изменить ContentPlaceholder

  • 0
    Я не хочу изменять заполнитель, но содержимое, которое заполняет заполнитель. Заполнитель определен в MasterPage, но я пытаюсь изменить Conten-Control в производной SubPage этой MasterPage.
  • 0
    Когда вы вызываете Master.FindControl (), он возвращает экземпляр вашей страницы для этого заполнителя, который будет вашим элементом управления контентом.
1

Вы можете поместить asp: Panel в ContentPlaceHolder и переместить в него разметку заполнителя. Таким образом вы можете попасть в контейнер Panel и управлять его контентом.

  • 0
    Звучит как хороший обходной путь для меня, я обязательно попробую это - все же, загадка остается: - /
0

Вы забыли добавить runat = "server" в ваш asp: Content-Control?

Привет,

М.

  • 0
    Это было первое, что я проверил, его установить и исправить ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню