【发布时间】:2016-01-11 12:08:56
【问题描述】:
我有以下List:
private List<System.Web.UI.WebControls.Image> _searchResultList = new List<System.Web.UI.WebControls.Image>();
此列表可能包含多个具有不同 URL 的图像。
我有以下Repeater:
<asp:Panel ID="SearchPanel" runat="server" ScrollBars="Vertical">
<asp:Repeater ID="Repeater" runat="server">
<ItemTemplate>
<asp:Image height="32" width="32" runat="server"/>
</ItemTemplate>
</asp:Repeater>
</asp:Panel>
使用DataSource 显示图像似乎不起作用。
Repeater.DataSource = _searchResultList;
Repeater.DataBind();
我做错了什么?
【问题讨论】:
-
您是否将这些图像序列化到服务器端某处的文件中?在网页上显示图像的方式是将它们作为文件保存,并通过向图像标签提供源信息来在网页上引用它们。没有简单的方法来渲染一个 Image 对象
-
@Andrei 图像的标准路径是“~/Images/ORAS/”。如果我在 aspx 页面上创建一个普通图像,我可以使用 ImageUrl 添加一个图像,但如果我必须在代码隐藏中创建它们,它就不起作用。
-
@Kohnarik...
_searchResultList不是字符串列表,因此您不能使用ImageURL='<%Container.DataItem.ToString()%>'。因为_searchResultList是一个图像列表,你应该绑定ImageUrl属性。这应该适合你:<ItemTemplate> <asp:Image ID="Image1" height="32" width="32" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' /> </ItemTemplate>
标签: c# asp.net asprepeater