我在我的asp.net网站上有几个页面,我想关闭母版页上的一个控件。有没有一种方法可以从子页面与母版页通信?
我在我的asp.net网站上有几个页面,我想关闭母版页上的一个控件。有没有一种方法可以从子页面与母版页通信?
最简单的方式是在母版页上设置一个属性,当调用该属性时,可以处理开/关功能。然后在你的子页面中设置MasterType指令来获取一个强类型引用到你的母版页,以避免需要强制转换。
你的子页面应该有:
<%@ MasterType VirtualPath="~/Site1.Master" %>
要调用母版页的属性:
Master.MyLabel = false; // or true
因此,在您的主分支上,您可以有:
public bool MyLabel
{
get
{
return masterLabel.Enabled;
}
set
{
masterLabel.Enabled = value;
}
}
你需要在页面标记中使用MasterType指令。
<%@ MasterType TypeName="Namespace.Etc.MyMasterPage" %>
那么,您将能够使用
Page.Master
来访问页面母版页的任何公共属性。
this.Master.PropertyIWantToIntefereWith...
希望这可以帮到您。这里举一个如何从子页面与主页面进行通信的例子。
在主页面上,创建一个属性来访问你想要控制的控件,比如一个名为 lblUser 的标签...
public string MyProperty
{
set { lblUser.Text = value; }
}
((MyMaster)this.Master).MyProperty = "Text changed from Sub Page";
我在寻找类似的东西,但是这个解决方案似乎对我不起作用。我有一个嵌套的母版页。这对于嵌套的母版是否有效?当我实现时,它没有识别我添加到我的主控件上的控件。
this.Master.FindControl("controlid").dosomethinghere
<%@ MasterType VirtualPath="~/Site1.Master" %>
。谢谢您先生,您得到了我的投票 =) - Michel Ayres