Access Master Page public method from user control/class/page

↘锁芯ラ 提交于 2019-12-21 04:40:55

问题


I am to access a method on my master page. I have an error label which I want to update based on error messages I get from my site.

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

How can I access this from my user control or classes that I set up?


回答1:


Page should contain next markup:

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

then Page.Master will have not a type of MasterPage but your master page's type, i.e.:

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

Page code-behind:

this.Master.ErrorText = ...;

Another way:

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

(put it to App_Code or better - into class library)

public partial class MySiteMaster : MasterPage, IMyMasterPage { }

Usage:

((IMyMasterPage )this.Page.Master).ErrorText = ...;



回答2:


To access the masterpage:

this.Page.Master

then you might need to cast to the actual type of the master page so that you could get the ErrorText property or make your master page implement an interface containing this property.



来源:https://stackoverflow.com/questions/4013343/access-master-page-public-method-from-user-control-class-page

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!