访问非母版页中的母版页控件?

时间:2012-01-30 18:55:37

标签: asp.net master-pages

在asp.net中,如何访问非母版页中的母版页控件?

3 个答案:

答案 0 :(得分:5)

您可以在当前页面上将主页面作为属性进行访问。但是,母版页上的控件受到保护,因此您无法直接访问它们。但您可以使用FindControl(string name)访问它们。您需要使用的代码取决于控件是在内容占位符的内部还是外部。

// Gets a reference to a TextBox control inside a ContentPlaceHolder
ContentPlaceHolder mpContentPlaceHolder;
TextBox mpTextBox;
mpContentPlaceHolder = 
    (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
if(mpContentPlaceHolder != null)
{
    mpTextBox = (TextBox) mpContentPlaceHolder.FindControl("TextBox1");
    if(mpTextBox != null)
    {
        mpTextBox.Text = "TextBox found!";
    }
}

// Gets a reference to a Label control that is not in a 
// ContentPlaceHolder control
Label mpLabel = (Label) Master.FindControl("masterPageLabel");
if(mpLabel != null)
{
    Label1.Text = "Master page label = " + mpLabel.Text;
}

答案 1 :(得分:2)

在您的网页中添加此内容以访问母版页Master Page : programatically access

的内容
<%@ MasterType virtualpath="Your MasterPath" %>

你可以这样做(替代方式)

MasterPage mstr 
Label lbl
mstr = Page.Master
If (mstr.ID == "yourMasterIDString")
{
     lbl = mstr.FindControl("lblBar")
        If (lbl !=null)
          {
                lbl.Text = "Do some Logic"
          }
}

答案 2 :(得分:2)

使用可以

TextBox txt1 = (TextBox)this.Master.FindControl("MytxtBox");
txt1.Text="Content Changed from content page";