Как изменить атрибут ImageUrl изображения при загрузке страницы с asp.net и C # в IE - PullRequest
3 голосов
/ 02 июня 2009

У меня есть ссылки на главной странице, которые могут иметь или не иметь прикрепленные файлы. Если ссылки имеют вложения, рядом со ссылкой будет размещен значок. Значок появится только в том случае, если ссылка имеет вложение.

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 front

<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 ]

1 голос
/ 02 июня 2009

Вы должны добавить полный путь к вашим изображениям. Вместо

pic.ImageUrl = "Photo.jpg";

Вы могли бы сделать это, чтобы ASP.Net также записал путь к фотографии ...

pic.ImageUrl = "~/MyImagePath/Photo.jpg";
0 голосов
/ 02 июня 2009

Как выглядит HTML-код, который создается из вашего кода? Не могли бы вы опубликовать это, поскольку есть известные проблемы с тем, как IE и Firefox отображают изображения в зависимости от того, как вы ссылаетесь на изображение. Было бы хорошо увидеть рендеринг, а также ваш код.

0 голосов
/ 02 июня 2009

Я разобрался в проблеме.

Изображения, которые я использовал, были почти 500kb. Я предположил, что размер дискового пространства фотографий был маленьким, потому что сами изображения были маленькими, но это не было правдой. Я изменил размеры изображений и уменьшил их до 40 КБ. Изображения теперь загружаются в ie.

Так что, похоже, проблема в том, что если вы меняете ImageUrl элемента управления изображением в asp.net во время загрузки страницы, а файл изображения, на который вы указываете, имеет большой размер (500 КБ).

Решение состоит в том, чтобы заставить само изображение занимать меньше дискового пространства, изменяя его размер, делая его gif, и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...