Asp.Net复杂表格:应用 Repeater 创建复杂表头的表格

 GridView的功能虽然强大,但在创建复杂表头报表时却显得逊色许多。此时我们应该想起另外一个控件:Repeater。下面是Repeater的结构

<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
</ItemTemplate>
<AlternatingItemTemplate>
</AlternatingItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>

HeaderTemplate为表头模板,ItemTemplate为可重复的项,AlternatingItemTemplate为可重复交替项,FooterTemplate为注脚部部分

下面给出示例:

1. 前台代码:

<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table border="1" align="center" width="100%" bordercolorlight="#a9a9a9" bordercolordark="#ffffff"
cellspacing="0" cellpadding="1" bordercolor="#a9a9a9" style="text-align: center;">
<tr bgcolor="#B5DBFF">
<td rowspan="2" style="width: 100px">
波段</td>
<td rowspan="2" style="width: 100px">
时段</td>
<td colspan="3" style="height: 17px;">
第一部分</td>
<td colspan="3" style="height: 17px;">
第二部分</td>
<td rowspan="2" style="width: 100px">
合计</td>
</tr>
<tr bgcolor="#B5DBFF">
<td style="width: 100px; height: 17px;">
一</td>
<td style="width: 100px; height: 17px;">
二</td>
<td style="width: 100px; height: 17px;">
三</td>
<td style="width: 100px; height: 17px;">
四</td>
<td style="width: 100px; height: 17px;">
五</td>
<td style="width: 100px; height: 17px;">

六</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td style="width: 100px">
<%# Eval("ChannelID") %>
</td>
<td style="width: 100px">
<%# Eval("Time")%>
</td>
<td style="width: 100px">
<%# Eval("Monday")%>
</td>
<td style="width: 100px">
<%# Eval("Tuesday")%>
</td>
<td style="width: 100px">
<%# Eval("Wednesday")%>
</td>
<td style="width: 100px">
<%# Eval("Thursday")%>
</td>
<td style="width: 100px">
<%# Eval("Friday")%>
</td>
<td style="width: 100px">
<%# Eval("Saturday")%>
</td>
<td style="width: 100px">
<%# Eval("Sunday")%>
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr style="background-color: WhiteSmoke;">
<td style="width: 100px">
<%# Eval("ChannelID") %>
</td>
<td style="width: 100px">
<%# Eval("Time")%>
</td>
<td style="width: 100px">
<%# Eval("Monday")%>
</td>
<td style="width: 100px">
<%# Eval("Tuesday")%>
</td>
<td style="width: 100px">
<%# Eval("Wednesday")%>
</td>
<td style="width: 100px">
<%# Eval("Thursday")%>
</td>
<td style="width: 100px">
<%# Eval("Friday")%>
</td>
<td style="width: 100px">
<%# Eval("Saturday")%>
</td>
<td style="width: 100px">
<%# Eval("Sunday")%>
</td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<cc1:WebPager ID="WebPager1" runat="server" PagerStyle="NextPrev" ControlToPaginate="Repeater1"
ItemsPerPage="24" OnPageIndexChanged="WebPager1_PageIndexChanged" />

2 后台代码:

#region Page事件
DataTest.BLL.GetData myBiz = new DataTest.BLL.GetData();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
GetData();
BindGrid();
}
}
#endregion

#region Repeater

#region 数据绑定
/// <summary>
/// 获取数据
/// </summary>
protected void GetData()
{
this.DataSource = myBiz.GetOrderDetails("RM_Clocks"); ;
}

/// <summary>
/// GridView 数据绑定
/// </summary>
private void BindGrid()
{
WebPager1.DataSource = this.DataSource;
WebPager1.DataBind();
}
#endregion

#region 分页
protected void WebPager1_PageIndexChanged(object sender, wf.WebPager.PageChangedEventArgs e)
{
WebPager1.CurrentPageIndex = e.NewPageIndex;
WebPager1.DataSource = this.DataSource;
WebPager1.DataBind();
}
#endregion

#endregion


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值