找回密码
 立即注册

QQ登录

只需一步,快速开始

Lynn.Dou 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-18 11:35  /   查看:2508  /  回复:0
背景:
客户使用组件版设计器,打开模板通过拖拽字段来设置模板。
需求是一个字段在表单中只能绑定一个单元格,在绑定第二个单元格时会提示禁止拖拽绑定。

思路:
通过重写 GC.Spread.Sheets.CellRange.prototype.bindingPath 来修改绑定字段逻辑。

代码:
  1. var oldSetBindingPath = GC.Spread.Sheets.CellRange.prototype.bindingPath;
  2.         GC.Spread.Sheets.CellRange.prototype.bindingPath = function(a) {
  3.             var sheet = this.sheet;
  4.             var rc = sheet.getRowCount();
  5.             var cc = sheet.getColumnCount();
  6.             // 遍历单元格,查看是否该字段已设置。如果是,则弹出弹窗提示,并取消绑定该字段
  7.             for(var r = 0; r < rc; r++) {
  8.                 for(var c = 0; c < cc; c++) {
  9.                     var path = sheet.getBindingPath(r, c);
  10.                     if(path == a) {
  11.                         alert("该字段已绑定!请勿拖拽");
  12.                         return;
  13.                     }
  14.                 }
  15.             }
  16.             oldSetBindingPath.call(this, a)
  17.         }
复制代码


实现效果如下图:
image.png65228270.png

完整代码请参考附件demo。

设计器-禁止添加字段.html

3.04 KB, 下载次数: 65

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部