簡體   English   中英

asp.net如何從具有嵌套母版頁的內容頁更改父母版頁中的控件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM