簡體   English   中英

默認圖像未顯示在ASP ImageField中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM