2017-02-08 3 views
0

Я только смог найти, как скрыть сломанные изображения для изображения, добавленного с помощью тега.Как скрыть разбитый элемент управления ASP.NET

т.е. <img src="sample.jpg" onerror="this.style.display='none';">

Как бы сделать это в .net с контролем изображения?

Вот мой код:

<asp:Image AlternateText='<%#Eval("DisplayName") %>' ID="newsImage" width="77" height="57" align="middle" valign="top" runat="server" Visible='<%# Eval("ImageName").ToString() != "" %>' ImageUrl='<%#String.Format("../images/products/{0}", Eval("ImageName")) %>' /> 

ответ

1

Здесь 2 варианта. Вы можете скрыть Image или изменить URL-адрес на noimage.jpg, например, когда файл не найден.

<asp:Image Visible='<%# System.IO.File.Exists(Server.MapPath(String.Format("../images/products/{0}", Eval("ImageName")))) %>' ImageUrl='<%# String.Format("../images/products/{0}", Eval("ImageName")) %>' runat="server" ID="Image1" /> 

<asp:Image ImageUrl='<%# System.IO.File.Exists(Server.MapPath(String.Format("../images/products/{0}", Eval("ImageName")))) ? String.Format("../images/products/{0}", Eval("ImageName")) : "no-image.jpg" %>' runat="server" ID="Image2" /> 
+0

мне пришлось изменить Server.MapPath на «~/фото/Продукты/{ 0} "потому что" ../images/products/{0} "выдает ошибку, но это сработало. Я решил показать пустое изображение вместо сломанного изображения. Спасибо! –

2

Если вы просто заботитесь о не показывая разбитое изображение в клиентском браузере, вы можете просто использовать -

<asp:Image ... onerror="this.style.display='none';" /> 
Смежные вопросы