在 Repeater 控件中显示图像

Show images in Repeater control

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

我做错了什么?

        <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>

_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") 来获取每个 Image 控件的 ImageUrl 属性。