У меня есть два повторителя, 1 вложенных в другой. Внутренний ретранслятор содержит и отображает в основном сетку текстовых полей, позволяющую пользователю вводить в набор информации.условная логика в вложенном репитере
Если есть 0 предметов для вложенного ребенка, проблем нет. В противном случае всегда будет указатель с шагом в четыре пары текстовых полей. Если есть 4 пары, мы хотим отобразить все 4 пары на 1 линии, там 8 пар, нам нужен разрыв строки между первыми 4 и вторыми 4 парами и т. Д. Для 12 .....
Я пытался это с чисто CSS, исходя из размера области и размера ящиков, заставляющих ее помещать ее в новую строку, но есть ли более чистый способ сделать это с помощью ретранслятора? Я заметил, что в некоторых браузерах и ОС я сталкиваюсь с этим, неловко обертывая.
<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>
Я вижу только один ретранслятор. Где другой, о котором вы говорите? –
@DouglasBarbin Эта разметка вложена внутри ItemTemplate родителя. –
Я не думаю, что есть чистый способ сделать это без динамического создания текстовых полей в группах по четыре раза. Тогда у вас есть проблемы жизненного цикла страницы, уничтожающие их на каждом PostBack. Возможно, вам лучше разобраться с деталями в области «Подробности», где пользователь выбирает строку Repeater, затем вы заполняете (и генерируете соответствующее количество текстовых полей) детали. –