C Sharper
C Sharper

Reputation: 8626

Image not getting displayed in datalist

I am binding images to datalist. Taking the image name from database and giving the path.

My code is:

<asp:DataList ID="dlImages" runat="server" RepeatColumns="4">
            <ItemTemplate>
               <asp:ImageButton ID="ImageButton1" Height="200px" Width="200px" ImageUrl='<%# Eval("PageName","D:\Sagar\Kinston\WebSite\ScreenMasterImages\{0}.jpg") %>'  runat="server" />
            </ItemTemplate>
        </asp:DataList>

On .cs page:

ds = gc.GetDataToListBinder("select DISTINCT PageOrderID,PageName from ScreenMaster order by PageOrderID")
            dlImages.DataSource = ds.Tables(0)
            dlImages.DataBind()

I am facing 2 problems :

  1. When imagename has space in between it adds %20 in between Eg. if imagename is "API Message", it takes it as: "API%20Message"

I tried On this Problem:

Added ImageUrl='<%#Server.HtmlDecode(Eval("PageName","D:\Sagar\Kinston\WebSite\ScreenMasterImages\{0}.jpg"))'

But I got error:

XML literals and XML properties are not supported in embedded code within ASP.NET
  1. If there is not space Eg.image name is "Charges" , Then also its not showing it in datalist.

When i ran project, and right clicked on it and view source, then its showing me correct path as:

src="D:\Sagar\Kinston\WebSite\ScreenMasterImages\Charges.jpg"

but not showing image.

Please help me with above code.

Where i have made mistake?

What else i should add in it?

Upvotes: 1

Views: 1293

Answers (1)

Simon Dugr&#233;
Simon Dugr&#233;

Reputation: 18916

Keep it easy and simple.

When trying things like that with URL, to know exactly what to write down, try typing it in your address bar so you'll be able to find the exact syntax needed in order to make it work correctly.

I've done this tons of time and work for me... So you could try something like :

<asp:DataList ID="dlImages" runat="server" RepeatColumns="4">
    <ItemTemplate>
        <asp:ImageButton ID="ImageButton1" Height="200px" Width="200px"
               ImageUrl='<%# String.Format("{0}{1}.jpg", "~\ScreenMasterImages\", Server.HtmlDecode(Eval("PageName"))) %>'
               runat="server" />
    </ItemTemplate>
</asp:DataList>

Upvotes: 2

Related Questions