簡體   English   中英

ASP.net C#Repeater多個對象

[英]ASP.net C# Repeater multiple objects

我有以下情況:

<asp:Repeater ID="myRepeater" runat="server">
    <ItemTemplate> 
        <asp:ImageButton OnClick="imgSearchResult_Click" BackColor="#333333" ID="imgSearchResult" height="32" width="32" runat="server" ToolTip='<%# Eval("ToolTip") %>' ImageUrl='<%# Eval("ImageUrl") %>'/> 
        <asp:Label ID="labValue" Text='<%# Eval("Text") %>' runat="server" Width="32" />
    </ItemTemplate>
</asp:Repeater>

轉發器包含ImageButton和Label對象。 如果僅使用一個對象,則可以通過綁定從代碼隱藏中添加它們:

Repeater.DataSource = imageList;
Repeater.DataBind();

要么

Repeater.DataSource = labelList;
Repeater.DataBind();

如何將兩者都添加到一個中繼器?

如果您在一台中繼器中需要它們,則它們與數據的該“視圖”(松散使用的術語)相關。 那么,為什么不將該視圖變成包含圖像和標簽的顯式對象呢? 命名或匿名:

return Enumerable.Zip(imageList, labellist, (image, label) => new {image, label}) 

或者,您可以只傳遞圖像並按索引查詢標簽:

<asp:Repeater ID="myRepeater" runat="server">
    <ItemTemplate> 
        <asp:Label ID="labValue" Text='<%# GetLabelText(Container.ItemIndex) %>' runat="server" Width="32" />
    </ItemTemplate>
</asp:Repeater>

這需要一個公共的GetLabelText(index)方法,並且可能需要在代碼后附加狀態,以使ImageList可用於該方法。 不太好,但是可以完成工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM