在内容页面之间切换时,多次尝试更新母版div中的图像。我首先尝试创建一个母版页属性,我可以通过声明“MasterType VirtualPath =”从内容页面的页面加载事件更新,但由于此时主加载已经无法正常工作。当我在主页面的页面加载事件中设置ImageUrl时,它确实有效(如果!Page.IsPostBack然后设置图像的url属性),所以我知道它可以工作,但我需要为我访问的每个内容页面更改图像。
然后我尝试使用主菜单按钮单击事件在加载内容页面之前设置ImageUrl,但这也没有效果。我看到一个线程建议使用UpdatePanel来保存图像,所以我可以尝试下一步。什么是最好的方法.. ??
如果更好的方法是将图像放在内容div中,并从主服务器更新它,我不会感到惊讶。任何建议或链接都是最受欢迎的。如果有人想看看,我可以发布代码。感谢。
答案 0 :(得分:3)
我不知道为什么你觉得这很困难。有很多方法可以做到这一点,但我只会展示一个。我刚测试了这个并且它有效。怎么样?
在您的母版页中,定义您的图片并添加runat="server"
<img src="put your default image.jpg" runat="server" id="changingImage" />
在您的内容页面中,执行此操作
protected void Page_Load(object sender, EventArgs e)
{
HtmlImage img = Master.FindControl("changingImage") as HtmlImage;
img.Src = "~/images/imageForContentPage1.jpg"; //replace this image based on your criteria
}
当无法找到Null Reference
中指定的图像控件的名称时,可能的异常为.FindControl
。确保它与您在母版页中命名的完全一样。并且为了防止Null Reference Exception,请检查
if(img != null)
{
img.Src = "~/images/imageForContentPage1.jpg";
}