ASP.NET基础教程-DataGrid表格控件-打印时让指定每一页的记录数量,并且每页都打印表格的标头

public static int _pageSize=15;  public static string _header;
/// <summary>
/// 传入DataGrid的引用和每页记录数,让DataGrid在打印时分页显示
/// </summary>
/// <param name=“grid”>要打印的DataGrid</param>
/// <param name="pageSize">每页显示记录条数</param>
在表格的ItemDataBound事件(在项创建时激发)和ItemCreated事件(在项被数据绑定后激发)中添加如下代码
private void DataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
   if (e.Item.ItemIndex > 0 && e.Item.ItemIndex % _pageSize == 0)  {
     LiteralControl  l = new LiteralControl();
    string header =  _header.Remove(_header.Length - 12, 12); //把表头代码结尾的</td>/r/n</tr>截去
   //加上处理过的表头
   l.Text = "</td></tr><tr><td bordercolor=white cellpadding=0 style=/"page-break-after:always/" colspan=/"" + e.Item.Cells.Count + "/"></td></tr>
     <td colspan=" + + e.Item.Cells.Count + "/"></td>" +  header;
     //如果最后一列是template column得用这句加,注释下面的.原因不明... 
     //e.Item.Cells[e.Item.Cells.Count-1].Controls.Add(l);
     e.Item.Cells[e.Item.Cells.Count-1].Text += l.Text ;
     }
}
private void DataGrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e){
   //拿到表头的html代码
   if (e.Item.ItemIndex == -1)  {
      System.IO.StringWriter tw = new System.IO.StringWriter();
     HtmlTextWriter htw = new HtmlTextWriter(tw);
     e.Item.RenderControl(htw); 
    _header = tw.ToString();
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值