找回密码
 立即注册

QQ登录

只需一步,快速开始

xingyuan2010000
论坛元老   /  发表于:2015-5-4 17:12:00
11#
回复 9楼iceman的帖子

通过对时间的比对,发现代码中加载模版,读取数据所花费的时间较少,大多数时间消耗在等待界面展示上,请问有什么办法可以解决这个问题吗?
好好学习
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-4 17:20:00
12#
回复 10楼xingyuan2010000的帖子

客户端提示操作信息请参考:
http://blog.gcpowertools.com.cn/ ... F%A1%E6%81%AF-.aspx

1000 条数据加载我呢提,请问有多少列数据?每个时间间隔加载了 1000 条还是一共加载 1000 条?
回复 使用道具 举报
xingyuan2010000
论坛元老   /  发表于:2015-5-5 10:46:00
13#
回复 12楼iceman的帖子

一共2000多条数据,18列,目前设置为分页显示,一页500条,抛去后台加载数据,前台初始化展示需要时间大概为27秒,这个有点太长了;测试发现展示花费的时间和设置分页显示的条目数成正比
好好学习
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-5 12:08:00
14#
回复 13楼xingyuan2010000的帖子

Spread 控件性能消耗主要有两点:数据量和UI。
从数据流入手,建议您采取按需加载和分页相结合的方式来缓解:


  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (IsPostBack)
  4.             {
  5.                 return;
  6.             }

  7.             DataTable dt = new DataTable();
  8.             dt.Columns.Add("Col1");
  9.             dt.Columns.Add("Col2");
  10.             for (int i = 0; i < 200; i++)
  11.             {
  12.                 dt.Rows.Add("1", "1");
  13.             }

  14.             this.FpSpread1.DataSource = dt;
  15.             SheetView sheet = this.FpSpread1.Sheets[0];

  16.             //按需加载
  17.             sheet.AllowLoadOnDemand = true;
  18.             sheet.LoadInitRowCount = 10;
  19.             sheet.LoadRowIncrement = 5;
  20.             sheet.LoadOnDemandMode = FarPoint.Web.Spread.LoadOnDemandMode.Background;
  21.             sheet.LoadOnDemandTriggerMode = FarPoint.Web.Spread.LoadOnDemandTriggerMode.Timed;
  22.             sheet.LoadOnDemandInterval = 1000;

  23.             //分页
  24.             sheet.AllowPage = true;
  25.             sheet.PageSize = 50;

  26.             this.FpSpread1.Sheets[0].Rows.Add(0, 1);
  27.             this.FpSpread1.Sheets[0].Cells[0, 0].Text = "测试";
  28.             this.FpSpread1.Sheets[0].AddSpanCell(0, 0, 1, 2);
  29.         }
复制代码


UI 方面只能减少单元格样式。
请您尝试分页和按需加载结合的方式,看能否有所缓解。
回复 使用道具 举报
xingyuan2010000
论坛元老   /  发表于:2015-5-5 14:21:00
15#
回复 14楼iceman的帖子

按需加载的时间间隔是不是最少是1秒啊,我设置100毫秒没反应
好好学习
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-5 16:41:00
16#
回复 15楼xingyuan2010000的帖子

单位是毫秒,没有最低限制,我这边测试需要重新清除下缓存(ctrl + F5)可以成功加载(这个情况我正在和产品组确认看是否正常)。
回复 使用道具 举报
xingyuan2010000
论坛元老   /  发表于:2015-5-6 14:43:00
17#
回复 16楼iceman的帖子

好的,多谢;
目前我们采用单页100行数据展示,但是点击“下一页”或“上一页”时,前台无法展示友好提示,经排查发现重写 protected override void Render(HtmlTextWriter writer)后,代码里无法获取相应的事件,请帮忙查看,10楼有具体的代码,请参考
好好学习
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-6 18:43:00
18#
回复 17楼xingyuan2010000的帖子

使用 10# 代码测试了下,点击“换页”时,render 事件是可以触发的并且可以拿到 image。附件是我的demo。测试版本为 Spread 8.1 。
16837_2.zip (7.79 KB, 下载次数: 59)
回复 使用道具 举报
xingyuan2010000
论坛元老   /  发表于:2015-5-7 13:51:00
19#
回复 18楼iceman的帖子

我对比了以下,我们使用的版本为Version=8.40.20143.0,您提供的测试版本为ersion=8.40.20151.0,请问在我们使用的版本上无法实现该功能吗?我们是不是必须升级到新版本才可以?
好好学习
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-7 14:09:00
20#
回复 19楼xingyuan2010000的帖子

我这边正在安装版本测试,请稍候给你反馈。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部