ASP.NET Repeater,动态启动新表行

时间:2012-09-07 15:09:12

标签: asp.net repeater newrow

我有以下转发器:

<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是一种更好的方法,我也会对此持开放态度。

提前致谢。

2 个答案:

答案 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/