在Repeater控件中显示图像

时间:2016-01-11 12:08:57

标签: c# asp.net asprepeater

我有以下List

private List<System.Web.UI.WebControls.Image> _searchResultList = new List<System.Web.UI.WebControls.Image>();

此列表可能包含多个具有不同网址的图片。

我有以下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();

我做错了什么?

2 个答案:

答案 0 :(得分:1)

        <asp:Panel ID="SearchPanel" runat="server" crollBars="Vertical">
        <asp:Repeater ID="Repeater" runat="server">
         <ItemTemplate>
            <asp:Image height="32" width="32" runat="server" ImageURL='<%Container.DataItem.ToString()%>'/>// changes here
        </ ItemTemplate>
           </asp:Repeater>
            </asp:Panel>

答案 1 :(得分:1)

_searchResultList不是字符串列表,因此您无法使用ImageURL='<%Container.DataItem.ToString()%>'。因为_searchResultList是图像列表,所以应绑定ImageUrl属性。这应该适合你:

<asp:Repeater ID="Repeater" runat="server">
    <ItemTemplate> 
       <asp:Image ID="Image1" height="32" width="32" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' /> 
    </ItemTemplate>
</asp:Repeater>

在此示例中,Container.DataItem引用Image控件。这就是我们使用Eval("ImageUrl")获取每个ImageUrl控件的Image属性的原因。