Как получить доступ к свойствам со страницы в ContentPlaceholder в моей MasterPage - PullRequest
0 голосов
/ 10 февраля 2011

У меня есть следующая среда:

  • мастер-страница с contentPlacholder
  • несколько страниц, которые используют эту мастер-страницу и реализуют базовый класс (fooPage)
  • fooPage имеет определенное свойство (fooProperty)

Теперь я хочу сделать что-то вроде

public partial class FooMaster : System.Web.UI.MasterPage
{
    // this is originally from the designer-file
    protected global::System.Web.UI.WebControls.ContentPlaceHolder ContentPlaceHolder;

    protected override void OnPreRender(System.EventArgs e)
    {
        var fooPageInstance = this.ContentPlaceHolder as fooPage;
        var fooPropertyInstance = fooPageInstance.fooProperty;
        // TODO do something with the property
    }
}

Очевидно, что это не сработает - но как я могу добитьсяэто?

Я знаю альтернативу: вызывать метод из masterPage в contentPage с fooProperty в качестве параметра - но я бы хотел иметь в этом случае pull-систему ...

Ответы [ 2 ]

0 голосов
/ 10 февраля 2011
public partial class FooMaster : System.Web.UI.MasterPage
{
    // this is originally from the designer-file
    protected global::System.Web.UI.WebControls.ContentPlaceHolder ContentPlaceHolder;

    protected override void OnPreRender(System.EventArgs e)
    {
        var fooPageInstance = this.ContentPlaceHolder.BindingContainer as FooPage;
        var fooPropertyInstance = fooPageInstance.fooProperty;
        // TODO do something with the property
    }
}
0 голосов
/ 10 февраля 2011

Вы можете использовать атрибут MasterType на главной странице.

См .: http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx

...