[英]Default image not shown in ASP ImageField
在我的asp.net gridview中有一個ASP ImageField,當圖像沒有顯示或損壞時我需要顯示默認圖像,這里我使用NullImageUrl但這不起作用。
我的代碼:
<asp:ImageField DataImageUrlField="FilePath" ControlStyle-Height="50" ControlStyle-Width="50" HeaderText="Image Preview" NullImageUrl="~/images/Defaultimg.png" />
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";
}
}
@KarthikManoharan的解決方案適用於本地圖像。 但是,如果您需要保留ImageFields或者還需要檢查遠程圖像,則必須在代碼中添加幾行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中所有損壞的圖像。 如果您只想考慮ImageFields,則需要為ImageFields設置自定義屬性。 這可以在gridview的RowDataBound事件中完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.