[英]how to change visible of an asp.net control of master page in content page?
[英]asp.net how to change a control which is in parent master page, from content page with nested master pages
我有ParentMaster.master,Child1Master.master,Child2Master.master和两个子母版下的几个内容页面。
在父级母版中,控件(按钮和标签) 位于 asp:ContentPlaceHolder之外。
我需要从内容页面后面的代码中更改ParentMaster(向上2级)中按钮和标签的文本。 我还需要将这些控件的“可见”属性更改为false或true。
到目前为止,我要做的唯一一件事就是(从内容页面上)更改1级母版中标签的文本,例如从“ AAAA”更改为“ BBBB”,如下所示:
在Master1.Master中:
<li><asp:label ID="lbl_something" runat="server" Text="AAAA"></asp:label></li>
在Master1.Master.cs中:
public string str_In_Master
{
get
{
return lbl_something.Text;
}
set
{
lbl_something.Text = value;
}
}
在内容页面中:
protected void Page_Load(object sender, EventArgs e)
{
this.Master.str_In_Master = "BBBB";
}
但这在嵌套的母版页情况下不起作用 。
可以做到吗? 是否可以更改顶级母版页中控件的属性,包括“文本”和“可见”? 谢谢!
您可以像这样从内容页面访问父母版。
var childMater1 = this.Master;
var parentMater = childMater1.Master;
您可以访问父级母版的任何公共财产。
var childMater1 = this.Master;
var parentMater = childMater1.Master;
var typedMaster = parentMater as ParentMaster;
typedMaster.SomeProperty = "some value";
您可以访问ParentMaster的任何控件。
var childMater1 = this.Master;
var parentMater = childMater1.Master;
var label = parentMater.FindControl("someLabelId") as Label;
label.Text = "new label value";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.