使用ASP转发器创建一个HTML表格,水平重复

时间:2012-02-20 13:13:39

标签: html asp.net html-table repeater

我正在尝试使用ASP转发器构建HTML表:

<asp:Repeater ID="RepeaterVersionsForPie" runat="server">
    <ItemTemplate>
        <table id="VersionsTable" >

                <tr>
                    <th>
                    <%#Eval("nameVersion")%>
                    </th>

                </tr>

    </ItemTemplate>
    <ItemTemplate>
        <tbody>
            <tr>
                <td tag="<%#Eval("idVersion")%>">
                    <%#Eval("NumberOfCompaniesUsingThisVersion")%>
                </td>
            </tr>
        </tbody>
    </ItemTemplate>
    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:Repeater>

这是一个基本表,包含两行和X列。 第一行显示没有任何问题,而第一行是不可见的。 任何人都可以帮助找到缺少的东西吗? 提前谢谢。

1 个答案:

答案 0 :(得分:10)

我认为核心问题是Repeater不是设计为水平重复。

也许您应该尝试使用允许指定RepeatingDirection的DataList

<强>更新

如果您不需要横向重复(例如您的问题建议“......两行和X列”),您的Repeater应该如下所示

<asp:Repeater ID="RepeaterVersionsForPie" runat="server">

    <HeaderTemplate>
        <table id="VersionsTable">
    </HeaderTemplate>

    <ItemTemplate>
        <tr>
            <th><%# Eval("nameVersion") %></th>
            <!-- Important: Put attributes in single quotes so they don't get
                 mixed up with your #Eval("xxx") double quotes! -->
            <td tag='<%#Eval("idVersion")%>'>
                <%# Eval("DocumentName") %>
            </td>
        </tr>
    </ItemTemplate>

    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:Repeater>

请注意,当您需要将<table>放在属性中时,不得重复<ItemTemplate>中的Eval并使用单引号。