2009-09-11 2 views
0

Я получил установку главной страницы с контролем ContentPlaceholder внутри тега заголовка, как так:Referencing Page.Title после того, как она была установлена ​​как часть осины: ContentPlaceHolder

<head id="head1" runat="server"> 
    <style type="text/css"> 
     body { font-family: Tahoma; font-size: 9pt; } 
    </style> 

    <title><asp:contentplaceholder id="title" runat="server" /></title> 
</head> 

Это ContentPlaceHolder реализуется внутри страница, которая использует эту MasterPage, как так:

<asp:content runat="server" contentplaceholderid="title"> 
    Welcome: <%= this.BasketID %> 
</asp:content> 

Я пытаюсь затем получить копию замещаемого заголовка внутри тела Masterpage (также попытался внутри страницы - и эта не работает либо), как:

<p> 
    <strong>Subject:</strong> <%# Page.Title %> 
</p> 

Во всех случаях Page.Title и Page.Header.Title являются "" (я пробовал как и привязки данных с использованием синтаксиса <%= %> безрезультатно.

Кто-нибудь знает, что здесь происходит и как я могу это преодолеть?

Спасибо.

ответ

1

Проблема, которую вы получаете, заключается в том, что вы «обманываете» цикл страниц. Лучше используйте это в кодовом списке страницы:

Master.Title = "Welcome: " + basketId 

Вы могли бы сделать это таким образом; на главной странице: создайте HtmlTextWriter, настройте его для записи в MemoryStream. Отредактируйте хранилище контента «title» в HtmlTextWriter, присоедините StreamReader к потоку, чтобы захватить содержимое в виде строки и вывести его на свою страницу. Тем не менее, это неэффективно, и слишком много работы :-)

+0

Я думал, что, должно быть, я делал что-то «не по порядку», это те мелочи, которые иногда меня злят о WebForms! :) Спасибо за совет. –