从内容页面更新母版页图像
Posted
技术标签:
【中文标题】从内容页面更新母版页图像【英文标题】:updating master page image from content page 【发布时间】:2013-01-25 16:07:01 【问题描述】:在内容页面之间切换时,已多次尝试更新母版页 div 中的图像。我首先尝试创建一个母版页属性,我可以通过声明“MasterType VirtualPath=”从内容页的 Page Load 事件中更新该属性,但由于此时已经加载了母版页,因此它无法正常工作。当我在母版页的页面加载事件中设置 ImageUrl 时它确实有效(如果 !Page.IsPostBack 然后设置图像的 url 属性),所以我知道它可以工作,但我需要为我访问的每个内容页面更改图像。
然后我尝试在加载内容页面之前使用主菜单按钮单击事件来设置 ImageUrl,但这也没有效果。我看到一个线程建议使用 UpdatePanel 来保存图像,所以我可以尝试下一个。最好的方法是什么..?
如果更好的方法是将图像放在内容 div 中,并从母版更新,我不会感到惊讶。任何建议或链接都将受到欢迎。如果有人想看看,我可以发布代码。谢谢。
【问题讨论】:
【参考方案1】:我不知道你为什么觉得这很困难。有很多方法可以做到这一点,但我只会展示一种。我刚刚测试了这个并且它有效。怎么样?
在您的母版页中,定义您的图像并添加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
当无法找到.FindControl
中指定的图像控件的名称时,可能的例外是Null Reference
。确保它与您在母版页中的名称完全相同。为了防止出现空引用异常,请检查
if(img != null)
img.Src = "~/images/imageForContentPage1.jpg";
【讨论】:
感谢您的回复。我在从内容页面加载事件设置的主代码后面的类中添加了一个“图像文件”属性。然后我在主页面加载事件中设置了 img.src,这是我出错的地方。我修改了您的解决方案,以便仍然从内容页面设置属性,然后我在母版页中使用 来设置 img 元素的“src”属性。谢谢。以上是关于从内容页面更新母版页图像的主要内容,如果未能解决你的问题,请参考以下文章