2011-08-09 77 views
0

我想更改基於數據庫中鏈接的圖像源。我在某些頁面上沒有將參數設置爲引用null消息。這裏是我試圖用來投射圖像的代碼。它可以處理所有頁面的註釋代碼,但大約有三個......我認爲它破壞的唯一原因是因爲這些頁面使用了徽標所在的繼承主頁面。 image.rc在if語句的最後部分,它沒有.Src可用。有什麼方法可以動態更改圖像源?謝謝!投射一個圖像,並動態更改它的源代碼

   if (row.ImageString != "") 
       { 
        //imgLogo.Src = "~" + row.ImageString; 
        Image image = new Image(); 
        image.FindControl("imgLogo"); 
        image.Src = "~" + row.ImageString; 
       } 

回答

0

我認爲你需要更多的東西是這樣的:

Image image = row.FindControl("imgLogo"); 
image.ImageUrl = "~" + row.ImageString; 

您的代碼試圖找到您剛纔初始化的圖像中的圖像。您需要在行/項目/父容器中找到圖像。

-1

由於母版頁,您正在獲取空引用。 如果您使用.Net 4.0,則需要將圖像控件上的ClientID設置爲靜態。
如果您使用4.0以前的.Net,您需要查看構建/運行頁面時顯示的源代碼,並查找圖像控件並查看控件的ID。有時它會呈現爲Content.ImageName或Content_ImageName .... 將其複製到image.Findcontrol方法中。
這將修復亞。

+0

你的建議無助於解決他的問題。將ClientID設置爲靜態只適用於客戶端,他所做的一切都是服務器端。 –

+0

這與它無關。他的空引用錯誤是因爲它找不到圖像控件(他在描述中告訴你他的問題)。如果他設置clientID名稱,它將允許服務器在嘗試插入URL時找到控件,否則他必須提供完全限定的控件名稱。 – cgcarter1

+0

是的,他無法找到圖像,因爲他試圖找到他在之前在線上初始化的圖像中的控件。在發佈答案之前,請仔細閱讀代碼。 –