代码之家  ›  专栏  ›  技术社区  ›  Jonathan Mayhak

如何在IE中使用asp.net和C#更改页面加载时图像的ImageUrl属性

  •  3
  • Jonathan Mayhak  · 技术社区  · 17 年前

    我在主页上有链接,可能有也可能没有与之相关的附件。如果链接有附件,则会在链接旁边放置一个图标。只有当链接有附件时,图标才会出现。

    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>
    
    3 回复  |  直到 17 年前
        1
  •  1
  •   Scott Ivey    17 年前

    您应该将完整路径添加到图像中。而不是

    pic.ImageUrl = "Photo.jpg";
    

    你也可以这样做,让ASP.Net写出照片的路径。。。

    pic.ImageUrl = "~/MyImagePath/Photo.jpg";
    
        2
  •  0
  •   Jonathan Mayhak    17 年前

    我使用的图片几乎是500kb。我假设图片的磁盘空间很小,因为图片本身很小,但事实并非如此。我调整了图片的大小,并将它们缩小到40kb左右。图像现在加载到ie中。

    因此,如果在页面加载期间更改asp.net中图像控件的ImageUrl,并且指向的图像文件很大(500kb),ie中似乎存在问题。

    解决方案是通过调整图片大小,使其成为gif等,使图片本身占用更少的磁盘空间。。

        3
  •  0
  •   Cragly    17 年前

    从您的代码生成的html代码是什么样子的?如果IE和firefox根据您引用图像的方式呈现图像存在已知问题,您是否可以发布此消息。最好能看到渲染效果和代码。

    推荐文章