Как определить Контент Контроля через код C # - PullRequest
0 голосов
/ 16 августа 2010

Я пишу веб-часть и пытался обновить заголовок браузера ... поэтому я зашел в mywebpart.ascx и добавил следующее:

<asp:Content ID="contentPageTitle" ContentPlaceholderID="PlaceHolderPageTitle" runat="server">
    <%= SPContext.Current.Site.OpenWeb().Title %>
</asp:Content>

Затем я получил эту ошибку: Элементы управления содержимым должныбыть элементами управления верхнего уровня на странице содержимого или вложенной главной странице, которая ссылается на главную страницу.

Итак, я пытаюсь сделать это программно в mywebpart.cs, выполнив:

Content content = new Content();
content.ContentPlaceHolderID = "PlaceHolderPageTitle";

Теперь мне нужно ввести этот фрагмент: SPContext.Current.Site.OpenWeb (). Title

Какое свойство в элементе управления Content позволяет мне это делать?Если есть лучший способ сделать это, я тоже открыт.Спасибо.

1 Ответ

0 голосов
/ 17 августа 2010

К сожалению, вы не можете поместить элемент управления контентом в пользовательский элемент управления. Как указано в сообщении об ошибке, элементы управления содержимым должны быть элементами управления верхнего уровня на странице или главной странице и не могут принадлежать никаким другим элементам управления.

Альтернативный подход может состоять в том, чтобы настроить макет страницы или главную страницу так, чтобы они содержали логику, которую вы хотите предоставить.

Если у вас есть некоторая уверенность в идентификаторе элемента управления контентом (имейте в виду, не ContentPlaceholderID), то вы можете взаимодействовать с элементом управления контентом следующим образом:

var content = Page.FindControl("contentPageTitle");
content.Controls.Add(new LiteralControl("Hello, World!"));

-

Кроме того, убедитесь, что любой SPWeb, открытый с OpenWeb(), правильно утилизируется, иначе вы можете столкнуться с проблемами управления памятью в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...