1

我正在将图像绑定到数据列表。从数据库中获取图像名称并给出路径。

我的代码是:

<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>

在 .cs 页面上:

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

我面临两个问题:

  1. 当 imagename 之间有空格时,它会在中间添加 %20 例如。如果 imagename 为“API Message”,则将其视为:“API%20Message”

我试过这个问题:

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

但我得到了错误:

XML literals and XML properties are not supported in embedded code within ASP.NET
  1. 如果没有空格 Eg.image name is "Charges" ,那么它也不会在 datalist 中显示。

当我运行项目并右键单击它并查看源代码时,它会向我显示正确的路径:

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

但不显示图像。

请帮我处理上面的代码。

我在哪里犯了错误?

我还应该添加什么?

4

1 回答 1

2

保持简单。

在尝试使用 URL 进行类似的操作时,要确切知道要写下什么,请尝试在地址栏中输入它,这样您就可以找到使其正常工作所需的确切语法。

我已经为我做了很多时间和工作......所以你可以尝试这样的事情:

<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>
于 2013-07-18T14:24:01.167 回答