2013-02-10 83 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

相關問題