找回密码
 立即注册

QQ登录

只需一步,快速开始

Joky

注册会员

2

主题

5

帖子

70

积分

注册会员

积分
70
最新发帖
Joky
注册会员   /  发表于:2016-4-24 10:48  /   查看:3656  /  回复:5
本帖最后由 Joky 于 2016-4-26 18:01 编辑

我想实现在模板中设置单元格点击事件,点击时弹出窗口进行操作,将值填充回点击的单元格,要怎么实现?

5 个回复

倒序浏览
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-25 11:41:46
沙发
您好:
实现思路,
1. 为Spread 单元格绑定CellCliked 事件;
activeSheet.bind(GcSpread.Sheets.Events.CellClick, function (sender, args){}

2.  获取返回的数据,绑定到对应的单元格,如
var person = {name: "Wang feng", age: 25, address: {postcode: "710075"}};
var source = new GcSpread.Sheets.CellBindingSource(person);
activeSheet.setBindingPath(0, 0, "name");
activeSheet.setBindingPath(1, 1, "age");
activeSheet.setBindingPath(3, 3, "address.postcode");
activeSheet.setDataSource(source);
回复 使用道具 举报
Joky
注册会员   /  发表于:2016-4-26 09:37:49
板凳
Lenka.Guo 发表于 2016-4-25 11:41
您好:
实现思路,
1. 为Spread 单元格绑定CellCliked 事件;

模板里怎么给指定的单元格绑定事件?在保存的模板中的json中是以什么格式保存点击事件的?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-4-26 11:09:27
地板
本帖最后由 dexteryao 于 2016-4-26 11:21 编辑

你在fromJSON后 加事件就好了

spread.fromJSON(data);
var activeSheet = spread.getActiveSheet();
activeSheet.bind(GcSpread.Sheets.Events.CellClick, function (sender, args){
    //... your code
});
绑定事件后可以获取到单元格行号,列号,然后处理就好了

  1. activeSheet.bind(GcSpread.Sheets.Events.CellClick, function (sender, args) {
  2.     if(args.sheetArea === GcSpread.Sheets.SheetArea.colHeader){
  3.         console.log("The column header was clicked.");
  4.     }

  5.     if(args.sheetArea === GcSpread.Sheets.SheetArea.rowHeader){
  6.         console.log("The row header was clicked.");
  7.     }

  8.     if(args.sheetArea === GcSpread.Sheets.SheetArea.corner){
  9.         console.log("The corner header was clicked.");
  10.     }

  11.     console.log("Clicked column index: " + args.col);
  12.     console.log("Clicked row index: " + args.row);
  13. });

  14. activeSheet.bind(GcSpread.Sheets.Events.CellDoubleClick, function (sender, args) {
  15.    
  16.     if(args.sheetArea === GcSpread.Sheets.SheetArea.colHeader){
  17.         console.log("The column header was double clicked.");
  18.     }

  19.     if(args.sheetArea === GcSpread.Sheets.SheetArea.rowHeader){
  20.         console.log("The row header was double clicked.");
  21.     }

  22.     if(args.sheetArea === GcSpread.Sheets.SheetArea.corner){
  23.         console.log("The corner header was double clicked.");
  24.     }

  25.     console.log("Double clicked column index: " + args.col);
  26.     console.log("Double clicked row index: " + args.row);
  27. });
复制代码


回复 使用道具 举报
Joky
注册会员   /  发表于:2016-4-26 16:30:14
5#
dexteryao 发表于 2016-4-26 11:09
你在fromJSON后 加事件就好了

spread.fromJSON(data);

好的,我再研究一下,非常感谢
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-4-26 16:37:46
6#
不客气,弹出框关闭时候setValue就好了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部