0

我在转发器中有以下图像控件。我试图让用户名在 ~/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" />
4

2 回答 2

1

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

<img src='/profilepics/<%#Eval("username") %>.jpg' />
于 2009-10-03T03:09:34.300 回答
0

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

如果你想使用这些标记,不要使用 WebControl,试试这个:

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

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

于 2009-10-03T03:05:42.427 回答