无法访问母版页控件
本文关键字:控件 母版页 访问 | 更新日期: 2023-09-27 18:34:24
我的母版页中有这个:
<asp:ContentPlaceHolder ID="BannerPlaceHolder" runat="server">
<asp:HyperLink ID="PortalBanner" runat="server"
ImageUrl="Images/banner-12-5-11.jpg"
NavigateUrl="~/Default.aspx"></asp:HyperLink>
</asp:ContentPlaceHolder>
我希望能够更改超链接ImageUrl
但我得到一个空异常:
对象引用未设置为对象的实例。
这是我访问超链接的代码
ContentPlaceHolder cp = (ContentPlaceHolder)this.Master.Master.FindControl("BannerPlaceHolder");
HyperLink hp= (HyperLink)cp.FindControl("PortalBanner");
你确定它在Master
的Master
吗?如果没有,只需将其更改为:
ContentPlaceHolder cp = (ContentPlaceHolder)this.Master.FindControl("BannerPlaceHolder");
另一种方法是在主控形状中提供一个属性,您可以通过将其强制转换为实际类型来从页面访问该属性。
在主控代码隐藏中:
public string PortalBannerImageUrl
{
get {
return this.PortalBanner.ImageUrl;
}
set {
this.PortalBanner.ImageUrl = value;
}
}
在页面中:
var myMaster = this.Master as YourMasterType;
if(myMaster != null)
{
myMaster.PortalBannerImageUrl = newImageUrl;
}