2013-11-26 3 views
0

У меня ниже ItemTemplate в gridview, чтобы получить изображение из папки. Позади кода я проверяю, существует ли изображение, если изображение нет, оно возвращает альтернативное изображение, но я не могу получить код, если изображение существует, чтобы использовать строку из шаблона. Спасибо за любую помощь.ImageUrl check in gridview

<ItemTemplate> 
    <asp:Image ID="Image1" runat="server" ImageUrl='<%# GetImageUrl(Eval("PerfilId", "AdminFotoUser/UserPics/{0}.png") as string)%>' /> 
</ItemTemplate> 

"behindecode"

protected string GetImageUrl(string input) 
    { 
     if (input.Equals("no")) 
     { 
      return "AdminFotoUser/UserPics/BGP1.png"; 
     } 
     else 
     { 
      ??? 
     } 
    } 

ответ

0

Если я правильно понимаю ваш вопрос, вы можете использовать FileInfo.Exists, чтобы проверить, существует ли файл.

var path = Server.MapPath("~/AdminFotoUser/UserPics/BGP1.png"); 
var fileInfo = new FileInfo(path); 
if (fileInfo.Exists) 
{ 
    // File exists in the folder   
} 
0

Попробуйте пройти только Id изображений он чист, так как (я думаю) все ваши изображения будут располагаться в той же папке,

protected string GetImageUrl(string input) 
{ 
    var filepath = Server.MapPath(string.format("~/AdminFotoUser/UserPics/{0}.png",input)); 

    return File.Exists(filepath)?   
     string.format("AdminFotoUser/UserPics/{0}.png",input):   
     "AdminFotoUser/UserPics/default.png"; // otherwise return default pic 

} 
+0

спасибо, но ... почему-то retourns me the default.png всегда – RMU

+0

попытайтесь найти полный путь к файлу, тогда я обновил свой ответ –

+0

запомнить параметр в привязке должен содержать только «PerfilId», –