代码之家  ›  专栏  ›  技术社区  ›  Churchill

从用户控件/类/页访问母版页公共方法

  •  6
  • Churchill  · 技术社区  · 14 年前

    我要访问母版页上的方法。我有一个错误标签,我想根据从我的网站上得到的错误消息来更新它。

    public string ErrorText
    {
        get { return this.infoLabel.Text; }
        set { this.infoLabel.Text = value; }
    }
    

    如何从我的用户控件或我设置的类中访问这个?

    2 回复  |  直到 13 年前
        1
  •  1
  •   abatishchev Marc Gravell    14 年前

    页面应包含下一个标记:

    <%@ MasterType VirtualPath="~/Site.master" %>
    

    然后 Page.Master 将不具有 MasterPage 但是您的母版页类型,即:

    public partial class MySiteMaster : MasterPage
    {
        public string ErrorText { get; set; }
    }
    

    页面代码隐藏:

    this.Master.ErrorText = ...;
    

    另一种方式:

    public interface IMyMasterPage
    {
        string ErrorText { get; set; }
    }
    

    (把它放在应用程序代码或者更好的地方-放在类库中)

    public partial class MySiteMaster : MasterPage, IMyMasterPage { }
    

    用途:

    ((IMyMasterPage )this.Page.Master).ErrorText = ...;
    
        2
  •  5
  •   Darin Dimitrov    14 年前

    要访问母版页:

    this.Page.Master
    

    然后您可能需要强制转换为母版页的实际类型,以便 ErrorText 属性或使母版页实现包含此属性的接口。