【问题标题】:ASP data list is adding a blank row inbetween each row with dataASP数据列表在每行数据之间添加一个空白行
【发布时间】:2018-10-22 03:11:14
【问题描述】:

这是我的前端代码:

<asp:DataList ID="DataList1" runat="server" CssClass="table table-striped1 table-hover">
    <HeaderTemplate>
        <tr class="thead">
            <th scope="col">one</th>
            <th scope="col">two</th>
            <th scope="col">three</th>
            <th scope="col">four</th>
            <th scope="col">five</th>
            <th scope="col">six</th>
            <th scope="col">seven</th>
            <th scope="col">eight</th>
            <th scope="col">nine</th>
            <th scope="col">ten</th>
        </tr>
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td>
                <asp:Label ID="lblDate" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Date")%>'></asp:Label></td>
            <td>
                <asp:LinkButton ID="lbOrderNo" runat="server" PostBackUrl='<%# DataBinder.Eval(Container.DataItem, "OrderLink")%>'><%# DataBinder.Eval(Container.DataItem, "OrderNo")%></asp:LinkButton></td>
            <td>
                <asp:Label ID="lblPO" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PO")%>'> </asp:Label>
            </td>
            <td>
                <asp:Label ID="lblInvoiceNo" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Invoices")%>'> </asp:Label></td>
            <td>
                <asp:Label ID="lblLines" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Lines")%>'></asp:Label></td>
            <td class="Price">$<asp:Label ID="lblTotal" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Total")%>'></asp:Label></td>
            <td>
                <asp:Label ID="lblStatus" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Status")%>'> </asp:Label>
            </td>
            <td>
                <asp:Label ID="lblSource" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Via")%>'></asp:Label></td>
            <td>
                <asp:Label ID="lblShipper" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Shipped")%>'></asp:Label></td>
            <td>
                <asp:LinkButton ID="lbTracking" runat="server" OnClientClick='<%# DataBinder.Eval(Container.DataItem, "blank")%>'><%# DataBinder.Eval(Container.DataItem, "Tracking")%> </asp:LinkButton></td>
        </tr>
    </ItemTemplate>
</asp:DataList>

^这是我网站上显示的内容

^这是正在制作的额外行

是我的代码出错还是您认为这是数据库问题?

【问题讨论】:

    标签: asp.net twitter-bootstrap html-table datalist


    【解决方案1】:

    这是 DataList 生成 html 的方式。它创建了自己的表。并且 Header 和 Item Template 会自动获得一个 &lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt; 来呈现内容。

    因为您还添加了&lt;tr&gt;,所以它变成了嵌套的并且是无效的 html。这就是您正在创建的内容:

    <tr>
       <td>
          //start template content
          <tr>
             <td>
    
             </td>
          </tr>
          //end template content
       </td>
    </tr>
    

    如果您要创建表格,请开始使用 GridView。或者,如果您想生成自己的表结构,Repeater。

    【讨论】: