[英]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.