Вопрос

В настоящее время я учусь использовать 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?

С уважением,

М.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top