簡體   English   中英

如何在IE中使用asp.net和C#更改頁面加載時圖像的ImageUrl屬性

[英]How to change an image's ImageUrl attribute on page load with asp.net and C# in IE

我在主頁上有鏈接,可能有也可能沒有與之關聯的附件。 如果鏈接具有附件,則會在鏈接旁放置一個圖標。 只有鏈接有附件時,圖標才會出現。

protected void Page_Load(object sender, EventArgs e)
    {
        foreach (Image pic in imgAttachment)
            {
                 int type = ds.Current_Events[index].AttachmentID;
                 //ds is the dataset

foreach循環遍歷主頁上的每個“當前事件”圖片,然后獲得與每個鏈接(即AtachmentID)相關聯的附件類型。 AttachmentID可以是0,1,2或3,這意味着不附加附件,附加照片,附加視頻或附加文檔。

然后使用switch語句將ImageUrl屬性更改為相應的圖片。

                 switch (type)
                     {
                            case 0:
                                break;
                            case 1:
                                pic.ImageUrl = "images/eventicons/Photo.jpg";
                                //changed from just "Photo.jpg"
                                break;
                            case 2:
                                pic.ImageUrl = "images/eventicons/Video.jpg";
                                //changed from just "Video.jpg"
                                break;
                            case 3:
                                pic.ImageUrl = "images/eventicons/Doc.jpg";
                                //changed from just "Doc.jpg"
                                break;
                            default:
                                pic.Visible = false;
                                break;
                      }
                  index++;
            }
    }

圖像不會在IE中加載,但它適用於Firefox。

以下是aspx前端

<div>
  <ul>
   <li>
      <asp:HyperLink ID="lblEvent1" runat="server">              
           <img src="images/bar_blank.gif" />
      </asp:HyperLink>
      <asp:Image ID="Image1" runat="server" />
   </li>
   <li>
      <asp:HyperLink ID="lblEvent2" runat="server">
           <img src="images/bar_blank.gif" />
      </asp:HyperLink>
      <asp:Image ID="Image2" runat="server" />
   </li>
  </ul>
</div>

您應該添加圖像的完整路徑。 代替

pic.ImageUrl = "Photo.jpg";

你可以這樣做讓ASP.Net寫出照片的路徑......

pic.ImageUrl = "~/MyImagePath/Photo.jpg";

我解決了這個問題。

我使用的圖片幾乎是500kb。 我假設圖片的磁盤空間大小很小,因為圖像本身很小但不是這樣。 我調整了圖像大小並將它們降低到大約40kb。 圖像現在加載ie。

因此,似乎存在一個問題,即如果在頁面加載期間更改了asp.net中圖像控件的ImageUrl,並且您指向的圖像文件很大(500kb)。

解決方案是通過調整大小來使圖片本身占用更少的磁盤空間,使其成為gif等。

從您的代碼生成的HTML代碼是什么樣的? 您是否可以發布此消息,因為IE和Firefox根據您引用圖像的方式呈現圖像的方式存在問題。 很高興看到渲染以及你的代碼背后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM