找回密码
 立即注册

QQ登录

只需一步,快速开始

Dtttax

银牌会员

265

主题

663

帖子

2116

积分

银牌会员

积分
2116
Dtttax
银牌会员   /  发表于:2024-7-3 14:15  /   查看:1223  /  回复:4
5金币
版本14.2.3,怎么阻止点击列头全选所有行的事件?


原因是现在如果行数很多(1万行)时,点击列头时会全选所有该列下所有行,会有点卡顿,
所以想修改全选事件为只选中前100行,

如下代码:
  1. this.spread.bind(GC.Spread.Sheets.Events.CellClick, function (sender, args) {
  2.           const { sheet,row,col,sheetArea } = args;
  3.           const rowCount = sheet.getRowCount();
  4.           if(sheetArea === GC.Spread.Sheets.SheetArea.colHeader) {
  5.             let rows = rowCount>100 ? 100:rowCount;
  6.             //设置-1时,rows无效,会全选所有行
  7.             sheet.setSelection(-1,col,rows,1);
  8.             //设置0时,rows有效,但是如果某一行有合并列就会选中多列,期望是只选中一列
  9.             sheet.setSelection(0,col,rows,1);
  10.             args.cancel = true;
  11.           }
  12.         });
复制代码


有什么办法可以做到只选中1列且100行吗?

最佳答案

查看完整内容

已经找到卡顿原因了, 是因为有底部状态栏计算统计,去掉状态栏就不卡顿了

4 个回复

倒序浏览
最佳答案
最佳答案
Dtttax
银牌会员   /  发表于:2024-7-3 14:15:52
来自 4#
已经找到卡顿原因了,
是因为有底部状态栏计算统计,去掉状态栏就不卡顿了

评分

参与人数 1金币 +500 收起 理由
Joestar.Xu + 500 赞一个!

查看全部评分

回复 使用道具 举报
eat_grape_5
高级会员   /  发表于:2024-7-3 15:55:32
2#
本帖最后由 eat_grape_5 于 2024-7-3 15:58 编辑

了解到楼主的应用场景中存在跨列的合并单元格,通过Worksheet:setSelection()接口选择区域将跨越合并单元格。在官网最新版的在线表格编辑器中模拟填充了10000行单列数据,点击列头选中全部数据未出现卡顿现象,猜测可能跟使用版本有关,可以试下官网最新版的在线表格编辑器。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-4 11:05:10
3#
您好,选中一列但是只选择前一百行的逻辑也很奇怪,如果用户在此时想清空这一列的值就只能清除前一百行的值了。

SpreadJS原生上也没有相关的接口能够修改此处的逻辑。

如楼上所述,可能是版本导致的问题,尝试升级到最新版本试试看是否还存在此问题。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-15 16:44:56
5#
Dtttax 发表于 2024-7-15 14:47
已经找到卡顿原因了,
是因为有底部状态栏计算统计,去掉状态栏就不卡顿了

感谢分享解决方案~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部