组件版设计器-根据条件禁止添加字段
背景:客户使用组件版设计器,打开模板通过拖拽字段来设置模板。
需求是一个字段在表单中只能绑定一个单元格,在绑定第二个单元格时会提示禁止拖拽绑定。
思路:
通过重写 GC.Spread.Sheets.CellRange.prototype.bindingPath 来修改绑定字段逻辑。
代码:
var oldSetBindingPath = GC.Spread.Sheets.CellRange.prototype.bindingPath;
GC.Spread.Sheets.CellRange.prototype.bindingPath = function(a) {
var sheet = this.sheet;
var rc = sheet.getRowCount();
var cc = sheet.getColumnCount();
// 遍历单元格,查看是否该字段已设置。如果是,则弹出弹窗提示,并取消绑定该字段
for(var r = 0; r < rc; r++) {
for(var c = 0; c < cc; c++) {
var path = sheet.getBindingPath(r, c);
if(path == a) {
alert("该字段已绑定!请勿拖拽");
return;
}
}
}
oldSetBindingPath.call(this, a)
}
实现效果如下图:
完整代码请参考附件demo。
页:
[1]