卿词。 发表于 2024-11-25 14:59:39

自定义单元格双击后会出现object,怎么阻止双击

本帖最后由 Richard.Huang 于 2024-11-25 15:16 编辑


Richard.Huang 发表于 2024-11-25 15:15:45

您好,双击的目的是为了激活单元格,让单元格进入编辑状态,请问您的实际场景和需求是什么,能否告知我,方便我为您提供更加精确的处理方案和方法

卿词。 发表于 2024-11-25 15:19:50

Richard.Huang 发表于 2024-11-25 15:15
您好,双击的目的是为了激活单元格,让单元格进入编辑状态,请问您的实际场景和需求是什么,能否告知我,方 ...

就是目前我自定义了单元格,单元格里存储了对象,双击单元格就会出现object,我不想显示这个

卿词。 发表于 2024-11-25 15:23:06

Richard.Huang 发表于 2024-11-25 15:15
您好,双击的目的是为了激活单元格,让单元格进入编辑状态,请问您的实际场景和需求是什么,能否告知我,方 ...

像视频里的,双击就出现了object

Richard.Huang 发表于 2024-11-25 15:24:11

卿词。 发表于 2024-11-25 15:19
就是目前我自定义了单元格,单元格里存储了对象,双击单元格就会出现object,我不想显示这个

我理解您要的功能,我想知道的是,您具体的场景,以及您这样做的需求是什么,以免即使我为您提供了禁止双击的方法后,您后期随着您的开发深入,您还会遇到其他随之而来的问题。

卿词。 发表于 2024-11-25 15:37:03

本帖最后由 卿词。 于 2024-11-25 15:38 编辑

Richard.Huang 发表于 2024-11-25 15:24
我理解您要的功能,我想知道的是,您具体的场景,以及您这样做的需求是什么,以免即使我为您提供了禁止双 ...
就是用户会双击到单元格,然后出现个object很不好,然后还有一个问题是,复制不了单元格的文本,一复制就复制出来object,我希望是复制的时候是复制到单元格的文本

Richard.Huang 发表于 2024-11-25 17:24:58

对于您的双击不期望激活单元格的需求可以参考一下设置:
// 监听双击事件
sheet.bind(GC.Spread.Sheets.Events.CellDoubleClick, function (sender, args) {
    sheet.endEdit(true);// 结束编辑
});
对于您的第二个问题,可以参考这篇知识库文章:https://demo.grapecity.com.cn/sp ... d_paste_customCells

卿词。 发表于 2024-11-25 20:32:46

Richard.Huang 发表于 2024-11-25 17:24
对于您的双击不期望激活单元格的需求可以参考一下设置:

对于您的第二个问题,可以参考这篇知识库文章: ...

好的,谢谢 第一个问题解决了,就是第二个还是不行

Richard.Huang 发表于 2024-11-26 12:30:50

卿词。 发表于 2024-11-25 20:32
好的,谢谢 第一个问题解决了,就是第二个还是不行

对于您的第二个问题,主要原因在于,您的这个下拉组件引用的是第三方的插件,其中会有很多兼容性的问题,比较好的处理办法如下,在粘贴前将您要粘贴的内容进行修改,粘贴结束后将您原本修改的区域进行复原,从而实现您要的效果

// 记录text
sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (sender, args) {
this.tempData = [];
var row = args.fromRange.row;
var col = args.fromRange.col;
var rowCount = args.fromRange.rowCount;
var colCount = args.fromRange.colCount;
var fromSheetName = args.fromSheet.name()
for (var i = row; i < row + rowCount; i++) {
    for (var j = col; j < col + colCount; j++) {
      if (sheet.getCellType(i, j) instanceof SelectCellType) {
      this.tempData.push({ fromSheetName: fromSheetName, i: i, j: j, val: sheet.getCell(i, j).value() });
      sheet.setValue(i, j, sheet.getCell(i, j).value().label)// 先把真实值写到单元格上,用于下一步的复制动作
      }
    }
}
});

// 粘贴结束,把原本的值进行复原
sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, function (sender, args) {
this.tempData.forEach(function (data, index) {
    var fromSheet = spread.getSheetFromName(data.fromSheetName);
    fromSheet.setValue(data.i, data.j, data.val)
})
});

卿词。 发表于 2024-11-26 16:07:03

Richard.Huang 发表于 2024-11-26 12:30
对于您的第二个问题,主要原因在于,您的这个下拉组件引用的是第三方的插件,其中会有很多兼容性的问题, ...

好的,谢谢
页: [1] 2
查看完整版本: 自定义单元格双击后会出现object,怎么阻止双击