2013-02-10 78 views
3

在内容页面之间切换时,已经多次尝试更新母版页div中的图像。我首先尝试创建一个母版页属性,我可以通过声明“MasterType VirtualPath =”从内容页面的页面加载事件更新,但由于此时母版已经加载,所以它不起作用。当我在主页面的页面加载事件中设置ImageUrl时(如果!Page.IsPostBack然后设置图像的URL attrib),它确实工作,所以我知道它可以工作,但是我需要为访问的每个内容页面更改图像。更新来自内容页面的母版页图像

然后,我尝试使用主菜单按钮单击事件来设置ImageUrl之前加载内容页面,但这也没有效果。我看到一个线程建议使用UpdatePanel来保存图像,所以我可以尝试下一步。什么是最好的方式来做到这一点.. ??

如果更好的方法是将图像放在内容div中,并将其更新为主内容,我不会感到惊讶。任何建议或链接将是最受欢迎的。如果有人想看看,我可以发布代码。谢谢。

回答

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指定的图像控件的名称找不到。确保它完全按照您在主页面中的命名。并防止空引用异常,包装检查

if(img != null) 
{ 
    img.Src = "~/images/imageForContentPage1.jpg"; 
} 
+0

感谢您的答复。我已经在内容页加载事件中设置的类后面的主代码中添加了一个“imagefile”属性。然后,我将img.src设置为主页的加载事件,这是我出错的地方。我修改了解决方案,以便仍然从内容页面设置属性,然后使用母版页中的<%#imagefile%>设置img元素的“src”属性。谢谢。 – Vince 2013-02-10 22:43:59