如何更改母版页中控件的值?

Azh*_*har 2 .net asp.net

如何更改控件的值,例如用户控件中的Literal,以及用户控件是否在母版页中,我想从内容页面更改该文字的值.

((System.Web.UI.UserControl)this.Page.Master.FindControl("ABC")).FindControl("XYZ").Text = "";
Run Code Online (Sandbox Code Playgroud)

这里ABC是用户控件,XYZ是Literal控件.

djd*_*d87 5

最好的解决方案是通过公共属性公开值.

将以下内容放入ABC包含XYZ控件的控件中:

public string XYZText
{
    get
    {
        return XYZControl.Text;
    }
    set
    {
       XYZControl.Text= value;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过将以下属性添加到MasterPage来从Master页面公开:

public string ExposeXYZText
{
    get
    {
        return ABCControl.XYZText;
    }
    set
    {
       ABCControl.XYZText = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后用它从任何内容页面,只是做了以下(其中MPMasterPage类):

string text = ((MP)Page.Master).ExposeXYZText;
((MP)Page.Master).ExposeXYZText = "New Value";
Run Code Online (Sandbox Code Playgroud)