我有一个中继器内的下列图像控制。我试图获取用户名来呈现之间的〜/ 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" />
有帮助吗?

解决方案

它不会以这种方式工作。该图片的WebControl不会采取这样的标记。 常见的方法是使用ItemDataBound事件到图像源分配给中继器项中的每个图像的控制。

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

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

声明:我没有测试上面的确切的代码但概念应该工作

其他提示

您不能使用绑定语法的服务器控制的内部。你有一个普通的IMG HTML标记,而不是试图?

<img src='/profilepics/<%#Eval("username") %>.jpg' />
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top