3

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

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

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

4

1 回答 1

3

I don't know why you found it difficult. There are many ways to do this but I'll only show one. I just tested this and it worked. How?

In your master page, define your image and add runat="server"

<img src="put your default image.jpg" runat="server" id="changingImage" />

In your content pages, do this

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

}

Possible exception is Null Reference when the name of the image control specified in .FindControl could not be found. Make sure it's exactly as you named it in the Master Page. And to prevent a Null Reference Exception, wrap a check around

if(img != null)
{
    img.Src = "~/images/imageForContentPage1.jpg";
}
于 2013-02-10T12:31:55.093 回答