2013-11-25 31 views
-2

我有一個下面的gridview與一個圖像字段鏈接到用戶ID號碼。 如果圖片dosnt存在於舊版本中以獲取標準替代圖片,我該怎麼辦?asp.net Gridview ImageField備用圖像

   <ItemTemplate> 
        <asp:Image ID="MainPic" runat="server" 
         ImageUrl='<%# GetImageUrl(Eval("PerfilId") as string)%>' /> 
       </ItemTemplate> 

..

protected string GetImageUrl(string dbImgURL) 
    { 
     if (File.Exists(dbImgURL)) 
     { 
      return dbImgURL; 
     } 
     else 
     { 
      return "AdminFotoUser/UserPics/BGP1.png"; 
     } 
    } 

回答

-1

那麼你可以檢查在GridView的onRowDataBound事件圖像路徑並將其更改爲一個共同的形象,如果文件不存在。使用System.IO的 ;

if (File.Exists(path)) 
       { 
        Console.WriteLine("file exists"); 
       } 

其他 //找到控制,並將其綁定到一個共同的圖像

OR

你本來還可以再工作網格以不同的方式: - 而不是使用圖片字段列,您可以使用如下模板列: 代碼:

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:Image runat="server" ID="myImg" 
      ImageUrl='<%# GetImageUrl(Eval(col2) as string) %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 

然後在後面的代碼,你必須創建一個函數來返回正確的圖像網址: 代碼: 更新答

//Send Image name from database (DataGrid) as dbImgURL 
protected string GetImageUrl(string dbImgURL) 
{ 
    if (File.Exists(dbImgURL)) 
    { 
     return dbImgURL;   
    } 
    else 
    { 
     return "Green.gif"; 
    } 
} 
+0

感謝,這是我一直在尋找。一件事情。如果圖片在文件中存在,我希望gridview使用現有的圖片,我將不得不更換>返回「Green.gif」< – RMU

+0

@RMU我已更新ans –

+0

謝謝你,但我仍然回來只有「Green.gif」而不是「如果返回」。 :-)(更新我的問題) – RMU