找回密码
 立即注册

QQ登录

只需一步,快速开始

一萧一剑

中级会员

30

主题

70

帖子

650

积分

中级会员

积分
650

活字格认证微信认证勋章元老葡萄

[已处理] 关于效率问题

一萧一剑
中级会员   /  发表于:2015-3-21 09:20  /   查看:3792  /  回复:1
比如 1)一个列表有60列,中间的可能10列可以编辑,不能编辑的列有锁住。
       2)每10个列一种背景色
       3)有部分列数据绑定后要循环赋值如下代码
                string[] strMoneyText;
                strMoneyText = new String[] { "RMB", "USD", "EUR", "HKD" };
                string[] strMoneyValue;
                strMoneyValue = new String[] { "RMB", "USD", "EUR", "HKD" };
               FarPoint.Web.Spread.ButtonCellType btn = null;
               FarPoint.Web.Spread.ButtonCellType btn = null;
                for (int i = 0; i < FpSpreadGV.Rows.Count; i++)
                {
                    //链接按钮,根据后台的数据赋值给每一个按钮
                    btn = new FarPoint.Web.Spread.ButtonCellType("btnLinkFile");
                    btn.ButtonType = FarPoint.Web.Spread.ButtonType.LinkButton;
                    if (!string.IsNullOrEmpty(FpSpreadGV.ActiveSheetView.Cells[i, 25].Text.Trim()) &amp;&amp; Convert.ToInt32(FpSpreadGV.ActiveSheetView.Cells[i, 25].Text.Trim()) > 0)
                    {
                       
                        btn.Text ="查看("+ FpSpreadGV.ActiveSheetView.Cells[i, 25].Text.Trim()+")";
                        btn.OnClientClick = "return OpenUploadFileWin('" + FpSpreadGV.ActiveSheetView.Cells[i, 27].Text.Trim() + "');";
                    }
                    this.FpSpreadGV.ActiveSheetView.Cells[i, 25].CellType = btn;

                   //根据后台的赋值选中下拉框
                    cbMoney = new FarPoint.Web.Spread.ComboBoxCellType(strMoneyText, strMoneyValue);
                    cbMoney.ShowButton = true;
                    FpSpreadGV.ActiveSheetView.Columns[16].CellType = cbMoney;
                    cbMoney.Values[0] = FpSpreadGV.ActiveSheetView.Cells[0, 16].Text;
                }


以上3个条件下,只要加载200条数据左右就很慢(大概10秒左右显示出来),增加分页了也效果不大,有什么办法可以提高效率。
技术改变世界

1 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-3-23 16:15:00
沙发
回复 1楼一萧一剑的帖子

Spread 在加载 SheetView 时有两个主要耗时点,第一是数据、第二是格式。
所以,需要尽量减少加载的数据量和格式。

数据量一般取决于业务需要,所以删减的可能性较小。
那么,根据你的代码在样式上耗费时间较多的是渲染 combocelltype 和 button,是否可以考虑设置cbMoney.ShowButton = false;来提高效率。

其他没有什么更好的建议可以提供给您。

评分

参与人数 1满意度 +5 收起 理由
一萧一剑 + 5 谢谢

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部