找回密码
 立即注册

QQ登录

只需一步,快速开始

zhongren66zr

银牌会员

14

主题

62

帖子

2694

积分

银牌会员

积分
2694

活字格认证

zhongren66zr
银牌会员   /  发表于:2013-3-11 11:10  /   查看:10249  /  回复:11
问题描述:
字段是PageNumber字段,下边有1~4,PageNumber为1的数据有7条,PageNumber为2的数据有10条
如果设置分页条数为8条,我要实现:
1:因为分页是8条,而PageNumber为1只有7条,那么显示完1的7条后就分页,进行第二页显示PageNumber为2的数据。
2:PageNumber为2的数据有10条,那么第二页显示完8条后,进行分页,在第三页显示剩余的3条,在进行分页,显示PageNumber为3的数据,依次类推。

总之:就是根据每页显示的条数,全部显示完PageNumber相同下的数据后,自动进行强制分页。
不知道我要实现的功能描述的清楚否,已经上传小demo,麻烦dof,给个程序的答案。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

11 个回复

倒序浏览
zhongren66zr
银牌会员   /  发表于:2013-3-11 13:47:00
沙发
http://gcdn.grapecity.com/showto ... 8&typeid=36
我在看 打印预览的例子,但是怎么下载了源程序,编译也没有错误,但是当点击打印的时候,预览页面总一闪而过,不能停留!我的浏览器是IE8.
回复 使用道具 举报
zhongren66zr
银牌会员   /  发表于:2013-3-11 13:48:00
板凳
回复 使用道具 举报
zhongren66zr
银牌会员   /  发表于:2013-3-11 14:09:00
地板
自定义分页demo里有一段这个代码
Table table = FpSpread1.FindControl("cmdTable") as Table;
PDF打印预览莉有一个这个代码
WebControl print = (WebControl)FpSpread1.FindControl(&quotrint");
一个找cmdTable,一个找Print
但是前台服务器控件都没这2个Id啊,而且cmdTable,Print还不是随意起的。
这2个名字 怎么来的。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-11 14:40:00
5#
最直接的方法就是,你运行Spread,如何查看最终生成的HTML中各个按钮或者TABLE对于的ID,比如有Add/Insert/Cut/Print等。
回复 使用道具 举报
zhongren66zr
银牌会员   /  发表于:2013-3-11 15:05:00
6#
回复 5楼dof的帖子

找到了 原来前面都多了个 前缀,FpSpread1_。请问dof我第一个那个 要得到的效果 可以实现吗
回复 使用道具 举报
zhongren66zr
银牌会员   /  发表于:2013-3-12 13:34:00
7#


1:点击下一页按钮,数据不绑定。
2:打印预览,预览界面一晃而过,不能停留,用户自己关闭,我的IE版本8。
以上2个都是源程序demo

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
zhongren66zr
银牌会员   /  发表于:2013-3-12 14:47:00
8#
回复 5楼dof的帖子

使用你那种提高分页效率,的方法,导出保存成excel,里边是空值。
是在导出之前设置IsTrackingViewState = true;吗?我在导出按钮里把和这个设置为true 还是不好使

FpSpread1.ActiveSheetView.Protect = false;
  //导出之前设置         IsTrackingViewState = true;
  // this.FpSpread1.Sheets[0].IsTrackingViewState = true;
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            FpSpread1.SaveExcel(ms, FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders);

            Response.Clear();

            Response.ContentType = "application/VND.ms-excel";

            Response.AddHeader("Content-Disposition", "attachment;filename=spread.xls");

            Response.BinaryWrite(ms.ToArray());

            ms.Flush();

            ms.Close();

            Response.End();
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-12 14:50:00
9#
关于按照PageNumber进行分页打印的方法,需要在Spread的PrintSheet事件中动态的来设置PageBreak属性:
  1.     protected void FpSpread1_PrintSheet(object sender, FarPoint.Web.Spread.PrintEventArgs e)
  2.     {
  3.         if (e.Row > -1)
  4.         {
  5.             int current = Convert.ToInt32(FpSpread1.Sheets[e.SheetIndex].Cells[e.Row, 0].Text);
  6.             int next = current;

  7.             if (FpSpread1.Sheets[e.SheetIndex].RowCount > e.Row + 1)
  8.             {
  9.                 next = Convert.ToInt32(FpSpread1.Sheets[e.SheetIndex].Cells[e.Row + 1, 0].Text);
  10.                 // 如果PageNumber发生变化,需要进行分页打印
  11.                 if (next != current)
  12.                 {
  13.                     e.PageBreak = true;
  14.                 }
  15.             }
  16.         }
  17.     }
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
zhongren66zr
银牌会员   /  发表于:2013-3-12 15:23:00
10#
回复 9楼dof的帖子

辛苦了,我现在马上查阅
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部