如何在REPEATER中使用FOR循环在?<table> </table>中创建

时间:2011-09-01 16:42:23

标签: asp.net loops repeater

我有一个绑定到List(of T)对象集合的转发器。它是Inventory对象的列表。每个Inventory对象还包含一个List(of T),它是Date / Inventory Count对的列表。当转发器创建表时,我需要为每个日期/库存计数创建一个TD。由于日期/库存计数的数量直到运行时才设置(使用NumWeeks变量),我需要改变转发器中TD的数量。这基本上就是我想要的:

    <asp:Repeater ID="rptReport" runat="server">
            <ItemTemplate>
                <tr>
                    <td><%#DataBinder.Eval(Container.DataItem, "Department")%></td>
                    <td><%#DataBinder.Eval(Container.DataItem, "Description")%></td> 
                    <%  For x = 0 To NumWeeks%>

                    <td><%#DataBinder.Eval(Container.DataItem, "Values")(x).Value()%></td> 

                    <%  Next%>             
                </tr>
            </ItemTemplate>
        </asp:Repeater>

3 个答案:

答案 0 :(得分:4)

您需要在此转发器中放置另一个转发器,并在父转发器的“ItemDataBound”事件中将数据源分配给该内转发器。这应该可以解决您的问题。

希望这有用!!

答案 1 :(得分:0)

另一种选择是你创建一个包含内部循环的Repeater的UserControl。您可以将“Values”指定为UserControl的属性。像这样:

<asp:Repeater ID="rptReport" runat="server"> 
        <ItemTemplate> 
            <tr> 
                <td><%# Eval("Department") %></td> 
                <td><%# Eval("Description") %></td>  
                <uc:WeekControl NumWeeks="<%#NumWeeks %>" Values='<%# EVal(Values)%> />
            </tr> 
        </ItemTemplate> 
    </asp:Repeater> 

答案 2 :(得分:0)

我需要那个循环我尝试了另一种方法并且它有效。

在我的.cs文件中,我创建了一个公共字符串,并在转发器中使用它。它工作正常。

public string somethingloop



for (int i = 0; i < dolar; i++)
        {
            somethingloop += "<i class='fa fa-dollar icon highlighted'></i>";

        }

并在itemtemplate中的任何位置的转发器中

<asp:Repeater ID="rptReport" runat="server"> 
    <ItemTemplate> 

        <%= somethingloop %>

        <tr> 
            <td><%# Eval("Department") %></td> 
            <td><%# Eval("Description") %></td>  
            <uc:WeekControl NumWeeks="<%#NumWeeks %>" Values='<%# EVal(Values)%> />
        </tr> 
    </ItemTemplate> 
</asp:Repeater>