在后台代码中调用Spread客户端的JS方法 之 UpdatePanel

上一篇文章讲解了在后台代码中调用 Spread 客户端 JS 方法的实现过程,本文将讲解在使用 UpdatePanel 情况下如何实现这一功能。两种不同应用场景中,实现方法主要区别在于客户端的 JS 脚本。本文使用场景为,用户点击【添加行】按钮之后,如果新增行超出了当前视图的显示范围, Spread 能够自动滚动并显示新增的行。

发布于 2012/12/28 00:00

上一篇文章讲解了在后台代码中调用 Spread 客户端 JS 方法的实现过程,本文将讲解在使用 UpdatePanel 情况下如何实现这一功能。两种不同应用场景中,实现方法主要区别在于客户端的 JS 脚本。本文使用场景为,用户点击【添加行】按钮之后,如果新增行超出了当前视图的显示范围, Spread 能够自动滚动并显示新增的行。

在页面中添加 ScriptManager 和 UpdatePanel,如何添加一个 Button 和 一个 Spread控件。

Button后台代码如下:

        protected void Button1_Click(object sender, EventArgs e)
        {
            // 在指定位置插入新行
            FpSpread1.ActiveSheetView.AddRows(FpSpread1.ActiveSheetView.RowCount - 1, 1);
            ScriptManager.RegisterStartupScript(this, this.GetType(), "scroll", "ScrollToRow('FpSpread1');", true);
        }

 

前台 JS 方法如下:

<script type="text/javascript" language="javascript">

        var name = "";

        function ScrollToRow(valgridname) {

            name = valgridname;

            if (document.all) {
                // IE
                SetToRowIE();
            }
            else {
                // FireFox
                SetTopRowFireFox();
            }
        }

        function SetToRowIE() {

            var spread = document.getElementById(name);

            // 判断 Spread 是否加载完毕
            if (spread.readyState == "loading") {
                // 加载中
                setTimeout(SetToRowIE, 200);
            } else if (spread.readyState == "complete") {                
                // 加载完毕
                rowindex = spread.GetRowCount() - 1;
                spread.ScrollTo(rowindex, 0);
            }
        }

        function SetTopRowFireFox() {

            var spread = document.getElementById(name);
        
            // 判断 Spread 是否加载完毕
            if (spread.GetRowCount) {
                // 加载完毕                
                rowindex = spread.GetRowCount() - 1;
                spread.ScrollTo(rowindex, 0);
            } else {
                // 加载中
                setTimeout(SetTopRowFireFox, 200);
            }
        }
    </script>

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态