我有一项任务,将我们的一页从具有三列的单个表移到两个表,这些表显示相同的数据集,但被挤压在一起并交替显示。因此,如果我今天的数据集显示为
到目前为止,我可以交替使用表数据,但是之后无法开始新行。
<asp:Repeater ID="fruitRep" runat="server" EnableViewState="false">
<HeaderTemplate>
<table>
<thead>
<tr align="center">
<th>Line</th>
<th>Fruit</th>
<th>Cost</th>
<th class ="ghostColumn">Blank</th>
<th>Line</th>
<th>Fruit</th>
<th>Cost</th>
</tr>
</thead>
</HeaderTemplate>
<ItemTemplate>
<td><%= LineCounter %></td>
<td>
<%# DataBinder.Eval(Container.DataItem, Fruit")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, PerUnitCost")%>
</td>
<td class ="ghostColumn">...</td>
</ItemTemplate>
<AlternatingItemTemplate>
<td><%= LineCounter %></td>
<td>
<%# DataBinder.Eval(Container.DataItem, Fruit")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, PerUnitCost")%>
</td>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
答案 0 :(得分:2)
如果要在同一表中包含标题和项目,则可以执行此操作。使用Container.ItemIndex %2 == 0
来写行的开头或结尾。
<table border="1">
<tr>
<th>Line</th>
<th>Fruit</th>
<th>Cost</th>
<th> </th>
<th>Line</th>
<th>Fruit</th>
<th>Cost</th>
</tr>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%# Container.ItemIndex %2 == 0 ? "<tr>" : "" %>
<td><%# Container.ItemIndex + 1 %></td>
<td><%# Eval("Ride_id") %></td>
<td><%# Eval("naam") %></td>
<%# Container.ItemIndex %2 == 0 ? "<td></td>" : "</tr>" %>
</ItemTemplate>
</asp:Repeater>
</table>
答案 1 :(得分:0)
虽然仍然需要一些样式,但是您的代码可能就这么简单:
<!-- you'll have to create the column headers outside the DataList -->
<table>
<tr>
<td>Line</td><td>Fruit</td><td>Cost</td>
<td> </td>
<td>Line</td><td>Fruit</td><td>Cost</td>
</tr>
</table>
<asp:DataList ID="fruitRep" RepeatColumns="2" RepeatDirection="Horizontal" RepeatLayout="Table" runat="server">
<ItemTemplate>
<%# Container.ItemIndex + 1 %></td>
<td><%# DataBinder.Eval(Container.DataItem, "Fruit") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "PerUnitCost") %>
</ItemTemplate>
<SeparatorTemplate> </SeparatorTemplate>
</asp:DataList>
请注意,我在表格单元格中捏入了封闭的ItemTemplate,该模板本身创建了一个开始和结束的表格单元格。