locked
External Image not displaying using Image URL path in Eval() RRS feed

Answers

  • User36583972 posted

    Hi garydon,

    From your description, I have made a sample on my side. The following code in my project for your reference.

    HTML:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" Height="217px" Width="223px">
                    <Columns>
                         <asp:TemplateField HeaderText="ID" FooterStyle-HorizontalAlign="Center">
                            <ItemTemplate>
                                <asp:Label ID="Label1" runat="server" Text='<%#Eval("ID").ToString().ToUpper() %>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="link" FooterStyle-HorizontalAlign="Center">
                            <ItemTemplate>
                                 <img id="bannerURL" src='<%#Eval("ImageUrl").ToString().Replace("\\","/")%>' alt="" border="0" class="img" runat="server"/>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
            </div>
        </form>
    </body>
    </html>
    

    ASPX.CS:

    protected void Page_Load(object sender, EventArgs e)
            {
                if(!IsPostBack)
                {
                    bind();
                }
            }
    
    
            private void bind()
            {
                DataTable tblDatas = new DataTable("Datas");
                DataColumn dc = null;
                dc = tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
                dc.AutoIncrement = true;//
                dc.AutoIncrementSeed = 1;//
                dc.AutoIncrementStep = 1;//
                dc.AllowDBNull = false;
                dc = tblDatas.Columns.Add("Product", Type.GetType("System.String"));
                dc = tblDatas.Columns.Add("Version", Type.GetType("System.String"));
                dc = tblDatas.Columns.Add("ImageUrl", Type.GetType("System.String"));
                DataRow newRow;
                for (int i = 0; i < 1; i++)
                {
                    newRow = tblDatas.NewRow();
                    newRow["Product"] = "Count" + i.ToString();
                    newRow["Version"] = "2.0";
                    newRow["ImageUrl"] = @"http://www.enetgroup.ca/banners/banner1.jpg";
                    tblDatas.Rows.Add(newRow);
                }
                ViewState["dt"] = tblDatas;
                GridView1.DataSource = tblDatas;
                GridView1.DataBind();
    
            }
    

    Best Regards,

    Yohann Lu

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Wednesday, May 18, 2016 5:06 AM

All replies

  • User36583972 posted

    Hi garydon,

    From your description, I have made a sample on my side. The following code in my project for your reference.

    HTML:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" Height="217px" Width="223px">
                    <Columns>
                         <asp:TemplateField HeaderText="ID" FooterStyle-HorizontalAlign="Center">
                            <ItemTemplate>
                                <asp:Label ID="Label1" runat="server" Text='<%#Eval("ID").ToString().ToUpper() %>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="link" FooterStyle-HorizontalAlign="Center">
                            <ItemTemplate>
                                 <img id="bannerURL" src='<%#Eval("ImageUrl").ToString().Replace("\\","/")%>' alt="" border="0" class="img" runat="server"/>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
            </div>
        </form>
    </body>
    </html>
    

    ASPX.CS:

    protected void Page_Load(object sender, EventArgs e)
            {
                if(!IsPostBack)
                {
                    bind();
                }
            }
    
    
            private void bind()
            {
                DataTable tblDatas = new DataTable("Datas");
                DataColumn dc = null;
                dc = tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
                dc.AutoIncrement = true;//
                dc.AutoIncrementSeed = 1;//
                dc.AutoIncrementStep = 1;//
                dc.AllowDBNull = false;
                dc = tblDatas.Columns.Add("Product", Type.GetType("System.String"));
                dc = tblDatas.Columns.Add("Version", Type.GetType("System.String"));
                dc = tblDatas.Columns.Add("ImageUrl", Type.GetType("System.String"));
                DataRow newRow;
                for (int i = 0; i < 1; i++)
                {
                    newRow = tblDatas.NewRow();
                    newRow["Product"] = "Count" + i.ToString();
                    newRow["Version"] = "2.0";
                    newRow["ImageUrl"] = @"http://www.enetgroup.ca/banners/banner1.jpg";
                    tblDatas.Rows.Add(newRow);
                }
                ViewState["dt"] = tblDatas;
                GridView1.DataSource = tblDatas;
                GridView1.DataBind();
    
            }
    

    Best Regards,

    Yohann Lu

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Wednesday, May 18, 2016 5:06 AM
  • User177399542 posted

    Hi Garydon

    Use like this:

    <%#Page.ResolveUrl(Eval("ImageURL")).ToString().Replace("\\","/")%>

    Wednesday, May 18, 2016 5:09 AM