2013-11-26 2 views
0

폴더에서 이미지를 가져 오려면 Gridview에서 ItemTemplate 아래에 있습니다. behinde 코드에서 이미지가 존재하는지 확인합니다. 이미지가없는 경우 대체 그림을 반환하지만 템플릿의 문자열을 사용하려면 이미지가있는 경우 코드를 가져올 수 없습니다. 어떤 도움을 주셔서 감사합니다.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

시도는, 모든 이미지가 같은 폴더에 위치 할 예정 (제 생각 엔) 이후 청소기의

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

감사 만 이미지 ID를 전달 ...하지만 몇 가지 이유로 그것을 위해 나를 항상 default.png retomets 항상 – RMU

+0

전체 파일 경로를 검색하려고하면 내 대답을 업데이트했습니다 –

+0

바인딩의 매개 변수를 기억해야 "PerfilId" –