在ASP.NET中,我如何在非母版页中访问母版页控件?
您可以在当前页面上将Masterpage作为属性访问。但是,主页上的控件是受保护的,因此无法直接访问它们。但是,您可以使用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;
}
在您的网页中添加以下内容,以便访问主页面的内容:主页面:以编程方式访问
<%@ 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"
}
}
您可以使用
TextBox txt1 = (TextBox)this.Master.FindControl("MytxtBox");
txt1.Text="Content Changed from content page";