在gridview中,如何仅在交替行上显示数据

时间:2016-06-08 13:02:15

标签: c# asp.net gridview

如何仅在gridview中的交替行上显示数据。我需要留下奇数行:1,3,5,7等等......空白。

3 个答案:

答案 0 :(得分:3)

您可以选择不在AlternatingItemTemplate中显示数据。

标记

<asp:GridView ID="SimpleGrid" runat="server"
    AutoGenerateColumns="false"
    AlternatingRowStyle-BackColor="Gray"
    AlternatingRowStyle-Height="10px"
    RowStyle-Height="10px">
    <Columns>
        <asp:TemplateField HeaderText="Demo">
            <ItemTemplate><%# Container.DataItem  %></ItemTemplate>
            <AlternatingItemTemplate></AlternatingItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        BindSimpleGrid();
    }
}
private void BindSimpleGrid()
{
    var items = 
        new List<string>{ "Item 0", "Item 1", "Item 2", "Item 3", "Item 4"};
    SimpleGrid.DataSource = items;
    SimpleGrid.DataBind();
}

更新:如果您想要添加空白行并仍然显示所有项目,则可以使用asp:ListView

标记。

<asp:ListView ID="SimpleGrid" runat="server">
    <LayoutTemplate>
        <table>
            <thead>
                <tr>
                    <th>Heading</th>
                </tr>
            </thead>
            <tbody id="itemPlaceHolder" runat="server"></tbody>
        </table>
    </LayoutTemplate>
    <ItemTemplate>
        <tr style="height: 20px;"><td><%# Container.DataItem  %></td></tr>
        <tr style="background-color: #ddd; height: 20px;"><td></td></tr>
    </ItemTemplate>
</asp:ListView>

答案 1 :(得分:0)

我猜您在Gridview rowindex期间要求显示交替行。使用OnRowDataBound事件Gridview

 protected void gridview_OnRowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.RowIndex % 2 != 0)
                {
                    // do whatever you want with your odd rows
                }
                else
                {
                    // do whatever you want with your Even rows
                }
            }
        }

答案 2 :(得分:0)

好的,经过进一步的研究,我决定使用转发器(更多的渲染控制)。我提到了这个帖子:How to add blank row in grid view?

我的代码:

                    <ItemTemplate>
                         <tr class="rowcontent">
                            <td>&nbsp;</td>
                            <td class="dashline">&nbsp;</td>
                            <td class="dashline">&nbsp;</td>
                            <td class="dashline">&nbsp;</td>
                        </tr>
                         <tr>
                            <td class="content4"><%# DataBinder.Eval(Container.DataItem, "Rank") %></td>
                            <td class="alternatingrow"><%# DataBinder.Eval(Container.DataItem, "InnCode") %></td>
                            <td class="alternatingrow"><%# DataBinder.Eval(Container.DataItem, "HOTEL_NAME") %></td>
                            <td class="alternatingrow"><%# DataBinder.Eval(Container.DataItem, "ENROLLMENT_PERCENTAGE") %>%</td>
                            </tr>
                    </ItemTemplate>