← 返回所有博客文章

这篇文章主要讲解如何在服务端调用Spread提供的客户端JS方法,主要是借助 ClientScript.RegisterStartupScript() 方法来实现这一功能。

比如,我们要实现对 Spread 中数据进行检索,如何跳转到检索结果所在的单元格。

在 Web 页面中添加 Spread,Button 和 TextBox,如何在Button的Click事件中对 Spread中的数据进行检索操作,如果检索到相应的结果,那么,调用客户端的方法来跳转到该单元格:

protected void btn_serch_Click(object sender, EventArgs e)
    {
        int row = -1;
        int col = -1;

        FpSpread1.Search(0, txt_serch.Text, false, false, false, false, 0, 0, ref row, ref col);

        if (row >= 0)
        {
            ClientScript.RegisterStartupScript(this.GetType(), "ScrollTo", string.Format("ScrollToRow({0},{1});", row, col), true);
        }
    }

对应的客户端 JS 代码如下:

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

        var rowindex = -1;
        var colindex = -1;

        function ScrollToRow(r, c) {
            if (r != "" && r != undefined) {
                rowindex = r;
                colindex = c;
            }

            if (document.all) {
                document.onreadystatechange = function () {
                    var spread = document.getElementById("FpSpread1");
                    if (spread.readyState == "complete") {
                        spread.ScrollTo(rowindex, 0);
                        spread.SetActiveCell(rowindex, colindex);
                    }
                }
            }
            else {
                document.addEventListener("DOMContentLoaded", function () {
                    var spread = document.getElementById("FpSpread1");
                    spread.ScrollTo(rowindex, colindex);
                    spread.SetActiveCell(rowindex, colindex);
                }, false)
            }
        }        
</script>

运行截图:

 

源码下载:

ServerCallClient.zip (10.91 kb)