Repeater创建复杂表头的表格

 GridView的功能虽然强大,但在创建复杂表头报表时却显得逊色许多。此时我们应该想起另外一个控件:Repeater。下面是Repeater的结构:
顾名思义,HeaderTemplate为表头模板,ItemTemplate为可重复的项,AlternatingItemTemplate为可重复交替项,FooterTemplate为注脚部部分。 
下面给出示例:
单击显示全图,Ctrl+滚轮缩放图片
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值