找回密码
 立即注册

QQ登录

只需一步,快速开始

曹金俊

金牌服务用户

37

主题

104

帖子

365

积分

金牌服务用户

积分
365

微信认证勋章

曹金俊
金牌服务用户   /  发表于:2019-2-22 08:13  /   查看:3156  /  回复:8
有没有类似桌面版Excel未保存提示保存功能,在关闭当前页面或者关闭浏览器的时候提示保存excel。

8 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-22 12:04:24
沙发
您好,SpreadJS没有直接提供这个功能,这个我需要一些调研。后续进展会在本帖更新。
回复 使用道具 举报
曹金俊
金牌服务用户   /  发表于:2019-2-27 08:54:35
板凳
KevinChen 发表于 2019-2-22 12:04
您好,SpreadJS没有直接提供这个功能,这个我需要一些调研。后续进展会在本帖更新。

那这样行吗 我想在spreadjs几秒未修改 自动保存。 有没有监听spreadjs在多少S内未修改的事件  我再去这事件里面写保存代码
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-27 12:26:00
地板
您好,问题关键点就在于没有接口能直接判断当前Spread文档是否被修改过。

用户在sheet上进行的修改,实际上都是调用了Spread JS的命令,可以用UndoManager的

canUndo来判断是否有命令执行,API如下:

http://help.grapecity.com/spread ... anager~canUndo.html

但是,对sheet表的增、删是无法判断的,

如果您前端的页面不牵扯sheet的增删,只需要判断canUndo的返回值即可,

否则还需要监听ActiveSheetChanged事件,当sheet数量发生变化时,

也应该认为spread文档发生了变化。
回复 使用道具 举报
曹金俊
金牌服务用户   /  发表于:2019-2-27 17:25:32
5#
KevinChen 发表于 2019-2-27 12:26
您好,问题关键点就在于没有接口能直接判断当前Spread文档是否被修改过。

用户在sheet上进行的修改,实 ...

能否给我相应的例子 我是在在线编辑表格里面  代码加在哪里才有用呢
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-27 18:09:05
6#
您好,目前没有现成的示例,制作Demo需要一些时间,明天我在本帖回复您。
回复 使用道具 举报
曹金俊
金牌服务用户   /  发表于:2019-2-28 08:04:28
7#
KevinChen 发表于 2019-2-27 18:09
您好,目前没有现成的示例,制作Demo需要一些时间,明天我在本帖回复您。

好的 感谢
回复 使用道具 举报
曹金俊
金牌服务用户   /  发表于:2019-2-28 10:33:00
8#

你好 请问demo制作好了吗 我想要的是用户修改excel内容 比如加颜色或者加值 简单说用户操作任何东西  我就需要将新的excel保存上去
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-28 17:07:09
9#
您好,请参考以下代码,从注释“添加逻辑”处开始到这个方法结束的位置。添加位置是在designer.loader.ready中。

  1.     designer.loader.ready(function () {
  2.         //To Fix the designer resize performance issues.
  3.         $(window).unbind("resize.gcuiribbon");
  4.         $("#verticalSplitter").show();
  5.         updateLayout();

  6.         // 添加逻辑
  7.         var spread = GC.Spread.Sheets.findControl("ss");
  8.         var undoManager = spread.undoManager();
  9.         var sheetFlg = false;
  10.         var sheetNum = spread.getSheetCount();
  11.         spread.bind(GC.Spread.Sheets.Events.ActiveSheetChanged, function (sender, args) {
  12.             if(spread.getSheetCount() !== sheetNum){
  13.                 sheetFlg = true;
  14.             }
  15.         });
  16.         window.onbeforeunload=function(e){
  17.             if(undoManager.canUndo() || sheetFlg){
  18.                 var e = window.event||e;
  19.                 e.returnValue=("确定离开当前页面吗?");
  20.             }
  21.         }
  22.     });
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部