我正试着用中继器得到下面的表格。
<table>
<tr>
<td>Description:</td>
<td>Start time:</td>
<td>End time:</td>
<td>Game type:</td>
<td>Description:</td>
<td>Start time:</td>
<td>End time:</td>
<td>Game type:</td>
</tr>
<tr>
<td>Data1</td>
<td>Data2</td>
<td>Data3</td>
<td>Data4</td>
<td>Data1</td>
<td>Data2</td>
<td>Data3</td>
<td>Data4</td>
</tr>
</table>但我想不出该怎么做。我尝试过以下几种方法:
<asp:Repeater ID="rptGames" runat="server">
<HeaderTemplate>
<table>
<tr>
</HeaderTemplate>
<ItemTemplate>
<td>Description:</td>
<td>Start time:</td>
<td>End time:</td>
<td>Game type:</td>
</ItemTemplate>
<SeparatorTemplate>
</tr><tr>
</SeparatorTemplate>
<AlternatingItemTemplate>
<td><%# Eval("Description") %></td>
<td><%# Eval("StartTime") %></td>
<td><%# Eval("EndTime") %></td>
<td><%# Eval("GameType") %></td>
</AlternatingItemTemplate>
<FooterTemplate>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>如果在最后应用分隔符模板,它会工作得很好。那么,对每个数据项使用单独的表是让这种模式工作的唯一方法吗?或者,有没有一种方法可以使用一个表来实现我的目标?
发布于 2011-08-02 23:05:23
您可以尝试在HeaderTemplate中写入表头,在ItemTemplate中写入行;-)
编辑:首先,我认为你只希望标题出现在标题中,并且每一行都代表数据项。因此,我建议使用以下代码:
<asp:Repeater ID="rptGames" runat="server">
<HeaderTemplate>
<table>
<tr>
<td>Description:</td>
<td>Start time:</td>
<td>End time:</td>
<td>Game type:</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("Description") %></td>
<td><%# Eval("StartTime") %></td>
<td><%# Eval("EndTime") %></td>
<td><%# Eval("GameType") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>现在,在你的评论说你想要重复每个单独的数据项上面的头之后,我建议如下:
<asp:Repeater ID="rptGames" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>Description:</td>
<td>Start time:</td>
<td>End time:</td>
<td>Game type:</td>
</tr>
<tr>
<td><%# Eval("Description") %></td>
<td><%# Eval("StartTime") %></td>
<td><%# Eval("EndTime") %></td>
<td><%# Eval("GameType") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>注意:您使用的AlternatingItemTemplate也表示一个数据项。通过使用它,您有机会为每个单独的项以不同的方式显示数据项(通常您对奇数和偶数行号使用不同的背景颜色)
编辑2:我希望,这次我正确理解了这个问题:-)
<asp:Repeater ID="rptGames" runat="server" OnItemCreated="rptGames_ItemCreated">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>Description:</td>
<td>Start time:</td>
<td>End time:</td>
<td>Game type:</td>
<td>Description:</td>
<td>Start time:</td>
<td>End time:</td>
<td>Game type:</td>
</tr>
<tr>
<td><%# Eval("Description") %></td>
<td><%# Eval("StartTime") %></td>
<td><%# Eval("EndTime") %></td>
<td><%# Eval("GameType") %></td>
</ItemTemplate>
<AlernatingItemTemplate>
<td><%# Eval("Description") %></td>
<td><%# Eval("StartTime") %></td>
<td><%# Eval("EndTime") %></td>
<td><%# Eval("GameType") %></td>
</tr>
</AlernatingItemTemplate>
</asp:Repeater>在代码后台( rptGames_ItemCreated )中,您可以根据数据项的数量将页脚的模板设置为</table>或</tr></table>注意:我还没有对此进行测试
发布于 2011-08-02 23:05:23
像这样试一下:
更新:要重复标题(根据OP的注释),请像这样修改它(如果您想要更多的列,请在每个tr中添加更多的列):
注意:假设OP想要以不同的方式设置头部样式,添加了背景色(只是为了给出一个想法)。
<asp:Repeater ID="rptGames" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr style="background-color: whiteSmoke">
<td>Description:</td>
<td>Start time:</td>
<td>End time:</td>
<td>Game type:</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr>
<td><%# Eval("Description") %></td>
<td><%# Eval("StartTime") %></td>
<td><%# Eval("EndTime") %></td>
<td><%# Eval("GameType") %></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>发布于 2011-08-02 23:06:39
将表标题行移动到表头,并将每个项目封装在树中
<asp:Repeater ID="rptGames" runat="server">
<HeaderTemplate>
<table>
<tr>
<td>Description:</td>
<td>Start time:</td>
<td>End time:</td>
<td>Game type:</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("Description") %></td>
<td><%# Eval("StartTime") %></td>
<td><%# Eval("EndTime") %></td>
<td><%# Eval("GameType") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>https://stackoverflow.com/questions/6914142
复制相似问题