【发布时间】:2010-04-13 20:03:54
【问题描述】:
我有一个名为 a1.aspx 的页面,Masterpagefile = a1_master.master。现在,母版页有自己的 div 和图像用于设计目的。我想要一种方式,当我加载 a1.aspx 时,某些选择的和图像应该被隐藏(可见 = false)。我怎样才能做到这一点? 如何从内容页面更改母版页中 div 或图像的可见性?
【问题讨论】:
标签: asp.net vb.net master-pages
我有一个名为 a1.aspx 的页面,Masterpagefile = a1_master.master。现在,母版页有自己的 div 和图像用于设计目的。我想要一种方式,当我加载 a1.aspx 时,某些选择的和图像应该被隐藏(可见 = false)。我怎样才能做到这一点? 如何从内容页面更改母版页中 div 或图像的可见性?
【问题讨论】:
标签: asp.net vb.net master-pages
为您的母版页声明一个接口,例如:
interface IMasterPageControls{
Image MyImage { get; }
}
并在您的母版页上实现它:
public class MasterPage : IMasterPageControls{
public Image MyImage {
get {
// whatever it takes to get the correct object...
return (Image)this.Page
.FindControl("nameOfContainer")
.FindControl("nameOfImage");
}
}
}
& 然后在你的页面中你可以这样做:
Image img = (this.Master as IMasterPageControls).MyImage;
这将为您提供图像的句柄并消除@Matthew 提到的一些问题...
HTH
【讨论】:
可能你想使用 FindControl 和 Master,像这样:
Image myImage = (Image)Master.FindControl("nameOfImage");
myImage.Visible = false;
查看this MSDN page 了解更多信息和示例。
【讨论】:
为母版页创建一个属性
public partial class YourMasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{ }
public bool HideImage
{
get { return imgYourImage.Visible; }
set { imgYourImage.Visible = value; }
}
}
在您的内容页面中:
(this.Master as YourMasterPage).HideImage = true;
【讨论】: