2 つのリピーターがあり、1 つはもう 1 つの中にネストされています。Inner Repeater には基本的にテキスト ボックスのグリッドが含まれて表示され、ユーザーが一連の情報を入力できるようになっています。
ネストされた子の項目が 0 の場合、問題はありません。それ以外の場合は、常に 4 の増分で、テキスト ボックスのペアが存在します。4 つのペアがある場合、4 つのペアすべてを 1 行に表示したい場合、8 つのペアがある場合、最初の 4 つのペアと次の 4 つのペアの間に改行が必要です。
領域のサイズとボックスのサイズに基づいて、純粋にCSSでこれを試みていましたが、新しい行に配置する必要がありますが、リピーターでこれを行うよりクリーンな方法はありますか? 一部のブラウザーと OS で、ぎこちなくラップすることに気付きました。
<ItemTemplate>
<tr>
<td> </td>
<td>
<asp:Label runat="server" ID="lbDayOfWeek" Text='<%# DataBinder.Eval(Container.DataItem, "DayOfWeek") %>'/>
</td>
<td>
<asp:Label runat="server" ID="lbDate" Text='<%# Format(DataBinder.Eval(Container.DataItem, "DateOfDay"), "MM/dd/yyyy") %>'/>
</td>
<td class="punches">
<asp:Repeater runat="server" ID="Punches" DataSource='<%# DataBinder.Eval(Container.DataItem, "PunchPairs") %>'>
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox runat='server' ID='Tb1' Text='<%# if(eval("InDefault")= false,DataBinder.Eval(Container.DataItem, "InTime"),"") %>' />
<asp:TextBox runat='server' ID='Tb2' Text='<%# if(eval("OutDefault")= false,DataBinder.Eval(Container.DataItem, "OutTime"),"") %>' />
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
</td>
<td class="Totals">
<asp:TextBox ID="txtHours" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "TotalHrs") %>' ReadOnly='true'/>
</td>
<td> </td>
</tr>