asp.net - 从内容页更新母版页图像

标签 asp.net master-pages

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

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

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

最佳答案

我不知道你为什么觉得这很难。有很多方法可以做到这一点,但我只展示一种。我刚刚测试了这个并且它有效。怎么办?

在您的母版页中,定义图像并添加 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。确保它与您在母版页中的命名完全一致。为了防止 Null Reference Exception,检查一下

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

关于asp.net - 从内容页更新母版页图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14797179/

相关文章:

c# - ASP.NET:多个程序集版本,相同的 Web 应用程序

javascript 将 body_0$ 添加到 ID 选择器

javascript - 使用 javascript 根据 RadioButtonList 选择的值显示/隐藏 div 控件

asp.net-mvc - 如何在 MVC2 下以编程方式设置母版页

php - 使用 Windows 主机上的 ASP.Net 表单更新 Linux 主机上的 MySQL 数据库的最有效方法是什么?

asp.net - 文本框文本更改回传

sharepoint-2007 - 如何更改 sharepoint 中特定页面的母版页

asp.net - MasterPage.Master > 下一个页面将作为子页面加载?

asp.net - 如何在某个按钮上设置默认 'enter'

c# - 为什么我的 Theme.Master 找不到它的 Site.css?