找回密码
 立即注册

QQ登录

只需一步,快速开始

bluesadman

注册会员

7

主题

14

帖子

183

积分

注册会员

积分
183

活字格认证

最新发帖
bluesadman
注册会员   /  发表于:2015-6-10 10:17  /   查看:5288  /  回复:9
开发环境win764 ie8.0 FpSpread 4.0.2004.2008



cs代码

        protected void Button2_Click(object sender, EventArgs e)
        {
            StringBuilder script = new StringBuilder();
            script.Append("<script language=javascript>");
            script.Append("doclick()");
            script.Append("</script>");
            this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "doclick", script.ToString());
        }

asp端js代码

     function doclick()
        {
           var spread = document.getElementById("FpSpread1");
           var rc = spread.GetTotalRowCount();
           var r = 0;
           while (r != rc - 1)
           {
               r1 = r;
              var inc = 0;
              while (r1 != -1)
              {
                 var val1 = spread.GetValue(r1, 1);
                 var val2 = spread.GetValue(r1 + 1, 1);
                 if (val1 == val2)
                 {
                    inc++;
                    r1++;
                 }
                 else
                 {
                    var cell = spread.GetCellByRowCol(r, 1);
                    cell.rowSpan = inc + 1;
                    r = r1 + 1;
                    r1 = -1;
                  }
               }
          }
       alert('Cells with same values merged');

提示 错误: 对象不支持此属性或方法

或者采用帮助文档里的

  function AutoSize()
  {
    FpSpread1。SizeToFit();
  }

依然提示错误

是ie不支持还是其他的问题呢

9 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-6-10 11:27:00
沙发
回复 1楼bluesadman的帖子

你好,
感谢您的问题反馈Spread 4.0 版本比较早,我需要搭建相应环境测试,稍后反馈给你结果。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-6-10 16:59:00
板凳
回复 1楼bluesadman的帖子

我这边测试结果是,如果使用前台直接调用 doclick 方法则可以正常使用,请问您这边在后台注册js时间的原因是?可以考虑在前台调用吗?

  1.         <input id="Button2" type="button" value="button" onclick="return Button2_onclick()" />
复制代码
回复 使用道具 举报
bluesadman
注册会员   /  发表于:2015-6-10 17:34:00
地板
确实,直接在前台可以执行,不报错。
在后台注册js事件,是因为FpSpread在后台有个数据绑定,打开完了以后对FpSpread页面有个调整,包括长宽每页行数等等。完了以后需要自动设置列宽,你们现在只提供一个客户端的js函数,你说应该怎么处理。
回复 使用道具 举报
bluesadman
注册会员   /  发表于:2015-6-10 17:36:00
5#
为什么在后台调用前台js函数就不成呢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-6-10 18:12:00
6#
回复 5楼bluesadman的帖子

明天我会针对您提出的两个问题和您电话沟通。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-6-23 10:47:00
7#
回复 5楼bluesadman的帖子

目前的状况是后台例如1#注册方法确实无法正常使用。请问您需要在什么时机进行自动设置列宽?可以考虑放到前台 Window.Onload 事件中处理吗?
回复 使用道具 举报
bluesadman
注册会员   /  发表于:2015-7-2 16:22:00
8#
在page_load事件中进行数据绑定,绑定完了之后还能执行Window.Onload么?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-7-3 10:08:00
9#
回复 8楼bluesadman的帖子

可以触发,请使用以下代码测试:
后台代码:
  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (IsPostBack)
  4.             {
  5.                 return;
  6.             }


  7.             System.Data.DataTable dt = new System.Data.DataTable("Test");
  8.             System.Data.DataRow dr = default(System.Data.DataRow);
  9.             dt.Columns.Add("Series0");
  10.             dt.Columns.Add("Series1");
  11.             dt.Columns.Add("Series2");
  12.             dr = dt.NewRow();
  13.             dr[0] = 2;
  14.             dr[1] = 1;
  15.             dr[2] = 5;
  16.             dt.Rows.Add(dr);
  17.             dr = dt.NewRow();
  18.             dr[0] = 4;
  19.             dr[1] = 2;
  20.             dr[2] = 5;
  21.             dt.Rows.Add(dr);
  22.             dr = dt.NewRow();
  23.             dr[0] = 3;
  24.             dr[1] = 4;
  25.             dr[2] = 5;
  26.             dt.Rows.Add(dr);
  27.             dr = dt.NewRow();
  28.             dr[0] = 3;
  29.             dr[1] = 4;
  30.             dr[2] = 5;

  31.             this.FpSpread1.DataSource = dt;
  32.         }
复制代码


前台代码:
  1.     <script type="text/javascript">
  2.         window.onload = function () {
  3.             var spread = this.document.getElementById("FpSpread1");
  4.             var cellvalue = spread.GetValue(0, 0);
  5.             alert(cellvalue);
  6.         }
  7.     </script>
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-7-8 10:29:00
10#
回复 8楼bluesadman的帖子

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢   

评分

参与人数 1满意度 +5 收起 理由
bluesadman + 5

查看全部评分

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