我在母版页面中有这个:
<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
,但我得到一个空例外:
对象引用未设置为对象的实例。
这是我访问HyperLink的代码
ContentPlaceHolder cp = (ContentPlaceHolder)this.Master.Master.FindControl("BannerPlaceHolder");
HyperLink hp= (HyperLink)cp.FindControl("PortalBanner");
答案 0 :(得分:2)
您确定它位于Master
的{{1}}吗?如果没有,只需将其更改为:
Master
另一种方法是在主服务器中提供一个属性,您可以通过将其转换为实际类型来从页面访问该属性。
在主人的代码隐藏中:
ContentPlaceHolder cp = (ContentPlaceHolder)this.Master.FindControl("BannerPlaceHolder");
页面中的:
public string PortalBannerImageUrl
{
get {
return this.PortalBanner.ImageUrl;
}
set {
this.PortalBanner.ImageUrl = value;
}
}