找回密码
 立即注册

QQ登录

只需一步,快速开始

钛和集团
初级会员   /  发表于:2024-5-31 18:53:56
11#
Joestar.Xu 发表于 2024-5-31 17:40
您好,在SelectionChanged事件中可以监听到是否按下了Shift键,当shiftKey为true时,可以将newSelections中 ...

这个还是不行啊,我选中1,2,5,8,9,10条数据,返回的是对的,

image.png51934813.png
然后ctrl键取消5,row = 6也就是7被返回回来了,但是7我是没有选择的
image.png133568724.png

image.png679506835.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-3 11:36:58
12#
您好,取消选区后选区自动变化的情况这边会进一步调研一下,后续有进展我会在本帖中回复您。

根据您目前反馈的情况,我整理了一个新的Demo来帮助您解决:

image.png84866332.png

首先,需要定义一个序号列,这个序号列上不能有任何合并单元格。

然后通过监听SelectionChanged事件,判断选区的列情况,如果选区的列索引为序号列的索引或为-1时,则正常选择。(主要是为了解决取消选区时自动变化导致的错误)

最后根据Range的RowCount判断进入Set的索引,如果RowCount为1,则直接将Row+1作为行号加入Set,如果RowCount不为1,则说明该Range是一个区域,则进行遍历将行号加入Set。

代码如下:

  1. sheet.tag({ checkColumnIndex: 2 });

  2. sheet.bind(GC.Spread.Sheets.Events.SelectionChanged, function (sender, args) {
  3.   console.log(sheet.tag());
  4.   let tag = sheet.tag();
  5.   console.log(args);
  6.   let checkedRows = new Set();
  7.   for (let item of args.newSelections) {
  8.     if (item.col === tag.checkColumnIndex || item.col === -1) {
  9.       if (item.rowCount === 1) {
  10.         checkedRows.add(item.row + 1);
  11.       } else {
  12.         for (let i = item.row; i < item.row + item.rowCount; i++) {
  13.           checkedRows.add(i + 1);
  14.         }
  15.       }
  16.     }
  17.   }
  18.   console.log(checkedRows);
  19. });
复制代码


另外,您这边为什么不使用CheckBox来解决这个问题呢?
回复 使用道具 举报
钛和集团
初级会员   /  发表于:2024-6-3 13:39:24
13#
本帖最后由 钛和集团 于 2024-6-3 13:46 编辑
Joestar.Xu 发表于 2024-6-3 11:36
您好,取消选区后选区自动变化的情况这边会进一步调研一下,后续有进展我会在本帖中回复您。

根据您目前 ...

因为开始用的表单绑定,然后想加个checkbox,全选那个嘛,后来不是你们说是数据绑定的整个表单,在第一列加不了复选框,加了的话绑定的值就对不上了,因为数据不能做选择某区域绑定;;;然后用表格绑定,我不想要列头ABCD那个,我想列头是字段名称,,然后你们说做个伪表头,但是呢伪表头做了,筛选跟我说加不了,,,,没办法说能不能表单绑定,然后根据选择行头的1234,来弄全选,,,但是现在看也不太行
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-3 17:46:02
14#
了解了,新提供的这段代码能否满足您的需求呢?
回复 使用道具 举报
钛和集团
初级会员   /  发表于:2024-6-3 18:08:23
15#
Joestar.Xu 发表于 2024-6-3 17:46
了解了,新提供的这段代码能否满足您的需求呢?

我这一定要有合并项,所以不太行,用回表格绑定了,舍弃字段名放在列头这个需求了
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-3 18:11:15
16#
好的,如果所有列上都有合并单元格的话暂时没有更好的方案能够满足您的需求了。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部