找回密码
 立即注册

QQ登录

只需一步,快速开始

注册会员

10

主题

27

帖子

89

积分

注册会员

积分
89

注册会员   /  发表于:2021-9-8 11:40  /   查看:2905  /  回复:5
2金币
本帖最后由 杰 于 2021-9-8 11:40 编辑

使用版本
image.png701018066.png

现象描述

如附件gif 所示

期望:
在点击透视表后页面的滚动条 不滚动到顶部

屏幕录制2021-08-23 上午11.gif.zip

13.06 MB, 下载次数: 108

最佳答案

查看完整内容

这边根据您提供的动图未能复现您的问题,附件是我测试的demo。 出现这个问题推测有两个原因:1、这边看到您的项目存在多个工作簿关联一个工作簿的场景,有可能存在事件或者跳转代码导致;2、可能是前端代码的影响,也就是非SpreadJS的代码影响。如果需要更加准确定位您的问题,需要您提供对应的demo,这边调研一下。

5 个回复

正序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-10-28 16:03:06
6#
杰 发表于 2021-10-28 15:53
你好 附件是我的demo,麻烦优先看一下 ,谢谢

收到,这边也看到你发了一个新的帖子,请移步至新帖交流
回复 使用道具 举报

注册会员   /  发表于:2021-10-28 15:53:05
5#
Derrick.Jiao 发表于 2021-9-27 17:25
这边看了你提供的代码,逻辑中也没有存在影响表单滚动的代码,因此无法复现问题。为了更加准确定位且给出 ...

你好 附件是我的demo,麻烦优先看一下 ,谢谢

sjs-react-app.zip

576.4 KB, 下载次数: 97

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-27 17:25:03
4#
杰 发表于 2021-9-27 16:52
你好, 我这边的这个场景比较特殊,当切仅当 其中的一个workbook 向上滚动到一半时, 这个时候我点击当前 ...

这边看了你提供的代码,逻辑中也没有存在影响表单滚动的代码,因此无法复现问题。为了更加准确定位且给出解决方案,建议你提供一个简易且能复现的demo,这边调研一下。
回复 使用道具 举报

注册会员   /  发表于:2021-9-27 16:52:35
3#
Derrick.Jiao 发表于 2021-9-8 12:29
这边根据您提供的动图未能复现您的问题,附件是我测试的demo。
出现这个问题推测有两个原因:1、这边看到 ...

你好, 我这边的这个场景比较特殊,当切仅当 其中的一个workbook 向上滚动到一半时, 这个时候我点击当前的workbook 的 单元格,  此时window 的滚动条就会自动向上滚动,将当前的workbook 滚动到屏幕中的可是区域,而我点击单元格的事件执行顺序是落后于 window 的滚动时间的, 查了文档实在是找不到原因

我的单元格切换事件的代码如下:
  1. cellSelectionChanged(draft, spread: GC.Spread.Sheets.Workbook, state, povForm, dataLinkage) {
  2.       // selectionColumn:当前选中单元格列下标
  3.       // selectionRow:当前选中单元格的行下标
  4.       const { selectionColumn, selectionRow } = getSelectCellInfo(spread);
  5.       // 获取当前活跃的sheet
  6.       const sheet = spread.getActiveSheet();
  7.       // 单元格位置信息
  8.       const cellLocation =
  9.         sheet.getValue(0, selectionColumn, GC.Spread.Sheets.SheetArea.colHeader) +
  10.         (selectionRow + 1);
  11.       // 单元格值
  12.       const value = sheet.getValue(selectionRow, selectionColumn);
  13.       // 如果单元格值为对象,即是选中了动态表收缩父级单元格,获取值需要取result字段
  14.       const filterCellValue =
  15.         Object.prototype.toString.call(value) === '[object Object]' ? value.result : value;
  16.       // 单元格内容
  17.       const cellValue = sheet.getFormula(selectionRow, selectionColumn)
  18.         ? `=${sheet.getFormula(selectionRow, selectionColumn)}`
  19.         : filterCellValue;

  20.       draft.selectedCell = {
  21.         locationInfo: cellLocation,
  22.         value: cellValue,
  23.       };
  24.     },
复制代码
回复 使用道具 举报
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-8 11:40:46
来自 2#
这边根据您提供的动图未能复现您的问题,附件是我测试的demo。
出现这个问题推测有两个原因:1、这边看到您的项目存在多个工作簿关联一个工作簿的场景,有可能存在事件或者跳转代码导致;2、可能是前端代码的影响,也就是非SpreadJS的代码影响。如果需要更加准确定位您的问题,需要您提供对应的demo,这边调研一下。

online.html

1.69 KB, 下载次数: 77

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部