asp.net 如何从包含嵌套母版页的内容页更改 parent 母版页中的控件
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 和两个 child 大师下的几个内容页面。
在 parent master 中,我的控件(按钮和标签)位于 asp:ContentPlaceHolder.
的 外部
我需要从内容页面的代码后面更改 ParentMaster(向上 2 级)中按钮和标签的文本。我还需要将这些控件的 'visible' 属性更改为 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";
}
但这在嵌套母版页的情况下不起作用。
完全可以做到吗?我可以更改 top-level MasterPage 中控件的属性,包括 'Text' 和 'Visible' 吗?谢谢!
您可以像这样从内容页面访问 parent 母版。
var childMater1 = this.Master;
var parentMater = childMater1.Master;
你可以访问 parent master 的任何 public 属性。
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";
我有 ParentMaster.master、Child1Master.master、Child2Master.master 和两个 child 大师下的几个内容页面。
在 parent master 中,我的控件(按钮和标签)位于 asp:ContentPlaceHolder.
的 外部
我需要从内容页面的代码后面更改 ParentMaster(向上 2 级)中按钮和标签的文本。我还需要将这些控件的 'visible' 属性更改为 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";
}
但这在嵌套母版页的情况下不起作用。
完全可以做到吗?我可以更改 top-level MasterPage 中控件的属性,包括 'Text' 和 'Visible' 吗?谢谢!
您可以像这样从内容页面访问 parent 母版。
var childMater1 = this.Master;
var parentMater = childMater1.Master;
你可以访问 parent master 的任何 public 属性。
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";