在设计表格时,需要把单元格的bindingPath显示出来,类似这种效果
第一个问题
一开始我用的自定义单元格重写paint方法,核心代码如下
- BindPathType.prototype = new spreadNS.CellTypes.Base();
- BindPathType.prototype.paint = function(ctx, value, x, y, w, h, style, context) {
- const { sheet } = context;
- if (sheet) {
- const bindPath = sheet.getBindingPath(context.row, context.col);
- if (bindPath) {
- style.foreColor = 'blue';
- spreadNS.CellTypes.Base.prototype.paint.apply(this, [
- ctx,
- `{{${bindPath}}}`,
- x,
- y,
- w,
- h,
- style,
- context,
- ]);
- } else {
- spreadNS.CellTypes.Base.prototype.paint.apply(this, arguments);
- }
- }
- };
复制代码 显示效果很好,但是所有单元格都不能编辑了,请问有解决办法吗?
第二个问题
然后我又用了第二种方法,重写了单元格的getText,核心代码如下
- GC.Spread.Sheets.CellTypes.Text.prototype.getText = function(value, context) {
- const bp = context.sheet.getBindingPath(context.row, context.col);
- if (bp) {
- return `{{${bp}}}`;
- }
- return originalTextCellTypeGetTextLogic.apply(this, arguments);
- };
复制代码
这样单元格可以编辑了,但是bindingPath字体颜色是默认黑色,这个方案是否有类似getText的方法重写style?
|
|