开发者

How can I use a FOR loop inside a REPEATER to create <TD>'s in a <TABLE>?

开发者 https://www.devze.com 2023-04-02 00:27 出处:网络
I have a repeater that is bound to a List(of T) object collection.It\'s a list of Inventory objects.Each Inventory object also contains a List(of T) which is a list of Date / Inventory Count pairs开发

I have a repeater that is bound to a List(of T) object collection. It's a list of Inventory objects. Each Inventory object also contains a List(of T) which is a list of Date / Inventory Count pairs开发者_如何学JAVA. When the repeater is creating a table, I need to create a TD for each of the Date / Inventory Counts. Since the number of Date / Inventory Counts is not set until runtime (using NumWeeks variable), I need to vary the number of TD's in my repeater. This is essentially what I want:

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


You need to place another repeater inside this repeater and assign the datasource to that inner repeater in the "ItemDataBound" event of the parent repeater. This should solve your issue.

Hope this is helpful!!


Another option would be that you create a UserControl containing a Repeater for the inner loop. You can assign the "Values" as a property of the UserControl. Something like this:

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


I needed that for loop I tried another approach and it worked.

in my .cs file I created a public string and used it inside the repeater. It works fine.

public string somethingloop



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

        }

and in repeater inside anywhere in the 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> 
0

精彩评论

暂无评论...
验证码 换一张
取 消