2014-05-24 60 views
0

在我的asp.net gridview中有一個ASP ImageField,當圖像沒有顯示或損壞時,我需要顯示默認圖像,這裏我使用了NullImageUrl,但這不起作用。在ASP ImageField中沒有顯示默認圖像

我的代碼:

<asp:ImageField DataImageUrlField="FilePath" ControlStyle-Height="50" ControlStyle-Width="50" HeaderText="Image Preview" NullImageUrl="~/images/Defaultimg.png" /> 
+0

檢查數據庫的圖像歸檔爲空或空,如果是空的,那麼它不會工作。 – KarthikManoharan

+0

@KarthikManoharan我需要當該文件不是圖像文件,那麼需要在這裏顯示默認圖像。 – TechGuy

+0

哦好,同樣的概念,但我用不同的方式,我會發佈下面的代碼,如果你需要你可以使用它。 – KarthikManoharan

回答

2

GridView的圖片標籤

<asp:Image class="fbimgsize" ImageUrl='<%# FormatURL(Convert.ToString(DataBinder.Eval(Container.DataItem, "picture"))) %>' 
    runat="server" ID="imgUser" /> 

C#代碼:本地圖像

public string FormatURL(string img) 
    { 
     try 
     { 
      if (Path.GetExtension(img).Equals(".jpg", StringComparison.InvariantCultureIgnoreCase)) 
      { 
       return img; 
      } 
      else 
      { 
       return "images/noimage.jpg"; 
      } 
     } 
     catch (Exception) 
     { 
      return "images/noimage.jpg"; 
     } 

    } 
+0

這不能用ASP Image Field知道嗎? – TechGuy

+0

爲什麼你可以使用圖像提交 – KarthikManoharan

0

@KarthikManoharan的解決方案確實工作。但是,如果您需要保留ImageField或者需要檢查遠程圖像,則必須在代碼中添加幾行javascript。僅當相應的綁定數據字段爲空時纔會考慮NullImageUrl屬性。它不檢查圖像url是否有效。

要修正損壞的URL的你可以這樣做:

<asp:GridView runat="server" ID="mySuperGridView"> 
     <Columns> 
      <asp:ImageField DataImageUrlField="ImageUrl" HeaderText="Image Preview" NullImageUrl="~/images/replacement.jpg" /> 
     </Columns> 
    </asp:GridView>  

$(function() { 
    $("#mySuperGridView").find("img").error(brokenImageHandler); 
}); 

function brokenImageHandler(image, param1) { 
    $(image.target).attr("src", "images/replacement.jpg"); 
} 

請記住,此功能將取代所有破碎的形象在你的GridView。如果您希望僅考慮您的ImageField,則需要將自定義屬性添加到ImageField中。這可以在GridView的RowDataBound事件中完成。

相關問題