如何仅在gridview中的交替行上显示数据。我需要留下奇数行:1,3,5,7等等......空白。
答案 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> </td>
<td class="dashline"> </td>
<td class="dashline"> </td>
<td class="dashline"> </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>