asp.net - 设置 Zebra DataList 表

标签 asp.net css datalist

首先,我需要从数据库绑定(bind)一个表,以便每一行都可以编辑。 我决定选择 DataList,因为它有 <EditItemTemplate>属性而中继器没有。

我需要创建一个 Zebra 表,为此我创建了以下 CSS 类:

.row:nth-of-type(odd)
{
background-color:Green;
}

问题是,当我在转发器中使用此类时,它工作正常,因为转发器的构建方式使您可以对行和列进行编码。 例如:

<asp:Repeater>
<HeaderTemplate>
    <Table ...>
</HeaderTemplate>
<ItemTemplate>
  <tr Class="row">
    <td> ... </td>
    <td> ... </td>
  </tr>
</ItemTepmlate>
<FooterTemplate></Table></FooterTemplate>

This is How the REPEATER table looks like

但是,当我以同样的方式构建我的 DataList 时,它看起来很奇怪而且很乱。 这就是我的数据列表的构建方式:

<asp:DataList ID="dlStages" runat="server" DataKeyField="Priority" OnCancelCommand="dlStages_CancelCommand"
    OnEditCommand="dlStages_EditCommand" 
    OnUpdateCommand="dlStages_UpdateCommand" BorderWidth="2" 
     GridLines="Both" CellPadding="20" CellSpacing="20" Width="99%" 
    onitemdatabound="dlStages_ItemDataBound">

    <HeaderTemplate>

            <th>
                Priority
            </th>
            <th>
                Stage
            </th>
            <th>
                Description
            </th>
            <th>
                Command
            </th>
            <th>
                Expected End Date
            </th>
    </HeaderTemplate>
    <ItemTemplate>

            <td>
                <%# Eval("Priority") %>
            </td>
            <td>
                <%# Eval("StatusName") %>
            </td>
            <td>
                <%# Eval("Comments") %>
            </td>
            <td>
                <asp:LinkButton ID="lbtnEdit" runat="server" Text="Edit" CommandName="edit"></asp:LinkButton>
            </td>
            <td>
                <%# Eval("ExpectedEndDate", "{0:dd-MM-yyyy}")%>
            </td>

    </ItemTemplate>        
    <EditItemTemplate>

            <td>
                <%# Eval("Priority") %>
            </td>
            <td>
                <%# Eval("StatusName") %>
            </td>
            <td>
                <asp:TextBox ID="txtComments" runat="server" Text='<%# Eval("Comments") %>' Width="800px"
                    Height="48px" TextMode="MultiLine"></asp:TextBox>
            </td>
            <td>
                <asp:LinkButton ID="lbtnUpdate" runat="server" Text="Update" CommandName="update"></asp:LinkButton>
                /
                <asp:LinkButton ID="lbtnCancel" runat="server" Text="Cancel" CommandName="cancel"></asp:LinkButton>
            </td>
            <td>

                <asp:TextBox runat="server" ID="txtDate"></asp:TextBox>
                <asp:CalendarExtender ID="CalendarExtender1" runat="server" PopupButtonID="txtDate"
                    TargetControlID="txtDate" Format="dd-MM-yyyy">
                </asp:CalendarExtender>
            </td>
    </EditItemTemplate>
</asp:DataList>

DataList Table:

为了给DataList中的每一行设置css类,我在代码后面写了如下代码:

protected void dlStages_ItemDataBound(object sender, DataListItemEventArgs e)
{
    e.Item.CssClass = "row";
}

问题是它不会为我创建斑马表。相反,它用那种灰色绘制第一列(我不知道它从哪里来的)。

有人能告诉我我的代码有什么问题吗?就我而言,如何在 DataList 控件中实现 ZEBRA 表?

提前致谢

附言 我的问题可能不清楚,所以如果需要澄清,我会进一步详细解释。

最佳答案

请参阅此相关问题:Creating table inside Datalist

  1. 您还没有指定 <tr>模板中的标签,所以 DataList正在生成孤儿 <td>标签

  2. 您可以使用 RepeatLayout值为 Table 的属性拥有 DataList生成打开和关闭 <table>给你打标签。

关于asp.net - 设置 Zebra DataList 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13937293/

相关文章:

ASP.NET : Hide Querystring in URL

html - Safari 浏览器中的中心元素

css - Bootstrap 3 - 删除装订线

html - 数据列表:在输入文本框中显示查询中的匹配选择

c# - 为什么以这种方式初始化会产生编译时错误?

c# - 方法名称的预定义宏

c# - 在 ASP.Net 应用程序中添加数据集问题

html - 移动设备上的按列响应表

javascript - JS : Get the . 所选数据列表选项的 html()

asp.net - 如何在 html 表格行中放置 asp.net 数据列表控件