试图在asp:Image控件的ImageUrl属性中嵌入DataItem

时间:2009-10-03 02:03:58

标签: asp.net data-binding markup datarepeater late-bound-evaluation

我在转发器中有以下图像控件。我正在尝试在〜/ profilepics /和.jpg之间获取用户名,但我得到以下渲染输出

/profilepics/%3C%25#DataBinder.Eval(的Container.DataItem,%20%22usernameFrom%22)%20%25%3E.jpg

这是标记

<asp:Image ID="Image1" runat="server" ImageUrl='~/profilepics/<%#DataBinder.Eval(Container.DataItem, "username") %>.jpg' />

我也尝试过相同的但是使用双引号并得到相同的结果。

<asp:Image ID="Image1" runat="server" ImageUrl="~/profilepics/<%#DataBinder.Eval(Container.DataItem, "username") %>.jpg" />

2 个答案:

答案 0 :(得分:1)

您无法在服务器控件中使用数据绑定语法。您是否尝试使用普通的img HTML标记?

<img src='/profilepics/<%#Eval("username") %>.jpg' />

答案 1 :(得分:0)

它不会以这种方式工作。 Image WebControl不会采用这种标记。 常见的方法是使用ItemDataBound事件将图像源分配给转发器项目中的每个图像控件。

如果您想使用这些标记,请不要使用WebControl,请尝试:

<img src='<%ResolveClientUrl("~/profilepics")%>/<%#DataBinder.Eval(Container.DataItem, "username") %>.jpg' />

免责声明:我没有测试上面的确切代码,但概念应该有效。