找回密码
 立即注册

QQ登录

只需一步,快速开始

sam
论坛元老   /  发表于:2012-7-23 23:03  /   查看:5183  /  回复:6
Hi Dof:

我这边又遇到一个问题。如下:
当我通过后台的某个按钮来给Spread表格中的某个单元格赋值,这样如何才能触发前台的FpSpread1_DataChanged事件.因我在FpSpread1_DataChanged中有做了一些的特殊处理。
我现在测试了下,在后台给单元格赋值,不能触发FpSpread1_DataChanged事件,而我直接在单元格中改变值,是可以触发到的。
以上麻烦给个解决方法。非常感谢!
你可以参考我附件的例子。谢谢!

6 个回复

倒序浏览
sam
论坛元老   /  发表于:2012-7-23 23:04:00
沙发

增加附件

增加附件

20120723.rar

2.94 MB, 下载次数: 106

回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-24 09:54:00
板凳
你好 sam

Spread客户端的DataChanged事件是在客户端来触发的,无法通过服务端的操作来触发。
回复 使用道具 举报
sam
论坛元老   /  发表于:2012-7-24 11:36:00
地板
那后台有没可捕获到单元格改变的事件?我现在需在单元格的值改变时候,需执行一个特殊逻辑。
这样该如何实现?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-24 12:12:00
5#
没有特别号的方法,你可以尝试在后台通过ClientScript.RegisterStartupScript的方式来调用前台的JS方法:

5333_DataChanged.zip (7.48 KB, 下载次数: 135)
回复 使用道具 举报
sam
论坛元老   /  发表于:2012-7-24 22:55:00
6#
嗨,我想请问下,我想通过后台代码调用前台Js方法来给表格赋值。但是会报:Microsoft JScript 运行时错误: 对象不支持此属性或方法。
后台方法:
protected void Button6_Click(object sender, EventArgs e)
        {
            System.Web.UI.ScriptManager.RegisterStartupScript(this.Button6, Button6.GetType(), "", "JsSetGridValue('" + "FpSpread1" + "','" + 0 + "','" + 3 + "','" + "CJB" + "')", true);
            //ClientScript.RegisterStartupScript(typeof(Button), "CJB", "<script type ='text/javascript'> JsSetGridValue('" + "FpSpread1" + "','" + 0 + "','" + 3 + "','" + "CJB" + "');</script>");
        }

前台Js:
function JsSetGridValue(valGridname, valRow, valCol, valValue) {
            var spreadname = valGridname;
            var spread = document.all(spreadname);
            if (spread != null) {
                spread.SetValue(valRow, valCol, valValue, true);
            }
        }

以上如何解决?谢谢!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-25 11:11:00
7#
你可以看一下附件中例子的实现方法:

5333_DataChanged.zip (7.61 KB, 下载次数: 100)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部