我有以下转发器:
<table>
<asp:Repeater runat="server" ID="rptBrandRepeater">
<ItemTemplate>
<tr>
<td>
<asp:HyperLink runat="server" ID="lnkCompanyLink">
<asp:Image runat="server" ID="imgCompanyLogo" />
</asp:HyperLink>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
我想每四个表格单元格开始一个新行。
我不想使用jQuery或Javascript来实现这一目标。
输出的html应该看起来像这个页面:http://rmtequipment.com/golfandturf.aspx
我创建了一个界面,允许他们自己添加这些徽标。 所以这个页面将动态构建。
实现这一目标的最佳方法是什么?
如果listview或gridview是一种更好的方法,我也会对此持开放态度。
提前致谢。
答案 0 :(得分:2)
我认为最好的方法是使用DataList代替。您可以通过RepeatDirection
属性以及要通过RepeatColumns
使用的布局来控制项目的RepeatLayout
和列数。
因此您的DataList将被定义为:
<asp:DataList RepeatDirection="Horizontal" RepeatColumns="4" RepeatLayout="Table" ...
答案 1 :(得分:1)
您最好的方法是摆脱表格并使用浮动的div
元素,因为它不是表格,也不包含表格数据。
<asp:Repeater runat="server" ID="rptBrandRepeater">
<ItemTemplate>
<div class="logo">
<asp:HyperLink runat="server" ID="lnkCompanyLink">
<asp:Image runat="server" ID="imgCompanyLogo" />
</asp:HyperLink>
</div>
</ItemTemplate>
</asp:Repeater>
然后设置你的div
div.logo{ float: left; width: 200px; display: inline; }
然后,这将基于包含所有这些徽标的元素的宽度,自然地突破到下一个“线”。
请参阅此基本演示示例:http://jsfiddle.net/ygnEa/