请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

nataliama

注册会员

21

主题

68

帖子

185

积分

注册会员

积分
185
nataliama
注册会员   /  发表于:2021-9-7 15:05  /   查看:1964  /  回复:9
1金币
原来公式栏里是activeCell里的内容,经过筛选后,原来的activeCell不显示了,但是公式栏里还是原来的内容,想把他里面的内容清空

最佳答案

查看完整内容

使用clearSelection()可以满足我的需求,谢谢

9 个回复

倒序浏览
最佳答案
最佳答案
nataliama
注册会员   /  发表于:2021-9-7 15:05:08
来自 9#
Derrick.Jiao 发表于 2021-9-8 14:36
这边根据您提供的代码,尝试做了一个demo,demo中双击跳转后是没有带原有Activecell的值,麻烦您在附件的 ...

使用clearSelection()可以满足我的需求,谢谢
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-7 16:15:44
2#
请问您是指的是我们的区域选择器吗?您可以用下面的方法传个空的字符串清空。您可以监听RangeFiltered事件,这是api
https://demo.grapecity.com.cn/sp ... event:RangeFiltered

在这个事件中获取活跃单元格是否存在,不存在,则调用fbx.text("");清空formulaBar
回复 使用道具 举报
nataliama
注册会员   /  发表于:2021-9-8 10:58:50
3#
Derrick.Jiao 发表于 2021-9-7 16:15
请问您是指的是我们的区域选择器吗?您可以用下面的方法传个空的字符串清空。您可以监听RangeFiltered事件 ...

监听不到,进不到里面
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-8 11:38:32
4#
nataliama 发表于 2021-9-8 10:58
监听不到,进不到里面

请问您做的是筛选操作吗?这边学习指南的demo中测试是可以监听到的。
image.png282213744.png

您可以将学习指南的demo下载添加事件进行测试
https://demo.grapecity.com.cn/sp ... ilter-dialog/purejs
回复 使用道具 举报
nataliama
注册会员   /  发表于:2021-9-8 13:07:53
5#
Derrick.Jiao 发表于 2021-9-8 11:38
请问您做的是筛选操作吗?这边学习指南的demo中测试是可以监听到的。

不是在表单里直接筛选,使用一个双击事件,双击后筛选,此时监听不到这个筛选
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-8 13:40:58
6#
nataliama 发表于 2021-9-8 13:07
不是在表单里直接筛选,使用一个双击事件,双击后筛选,此时监听不到这个筛选

请问您的筛选逻辑是什么呢?麻烦您提供一个demo,这边调研一下。另外,是否能在双击筛选后直接嗲用fbx.text("");清空formulaBar呢?
回复 使用道具 举报
nataliama
注册会员   /  发表于:2021-9-8 13:55:43
7#
Derrick.Jiao 发表于 2021-9-8 13:40
请问您的筛选逻辑是什么呢?麻烦您提供一个demo,这边调研一下。另外,是否能在双击筛选后直接嗲用fbx.te ...

const subjectSheet = spread.getSheetFromName('科目筛选表')
      const voucherSheet = spread.getSheetFromName('凭证筛选表')
      if (subjectSheet !== null) {
        // 设置冻结行列
        subjectSheet.frozenColumnCount(6)
        subjectSheet.frozenRowCount(1)
        // 设置双击事件
        subjectSheet.bind(GC.Spread.Sheets.Events.CellDoubleClick, function(sender, args) {
          if (args.col === 4 && args.row > 0) {
            const portfolio = subjectSheet.getText(args.row, 14)
            var columnCount = voucherSheet.getColumnCount()
            var rowCount = voucherSheet.getRowCount()
            var range = new GC.Spread.Sheets.Range(1, 0, rowCount - 1, columnCount - 1)
            voucherSheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(range))
            var compareType = GC.Spread.Sheets.ConditionalFormatting.TextCompareType.equalsTo
            var condition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.textCondition, { compareType: compareType, expected: portfolio })
            var rowfilter = voucherSheet.rowFilter()
            rowfilter.addFilterItem(2, condition)
            rowfilter.filter(2)
            spread.setActiveSheet('凭证筛选表')
          }
        })
      }


现在是voucherSheet 里面formulabar里会遗留之前的activeCell的值,重新双击筛选后,原值不显示,想清空
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-8 14:36:20
8#
nataliama 发表于 2021-9-8 13:55
const subjectSheet = spread.getSheetFromName('科目筛选表')
      const voucherSheet = spread.getS ...

这边根据您提供的代码,尝试做了一个demo,demo中双击跳转后是没有带原有Activecell的值,麻烦您在附件的demo中复现您的问题。
另外,您也可以尝试在筛选后用sheet.clearSelection();清除原有的ActiveCell的选区。

区域选择.zip

2.07 KB, 下载次数: 45

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-8 15:26:53
10#
nataliama 发表于 2021-9-8 15:10
使用clearSelection()可以满足我的需求,谢谢

解决了就好,有新问题欢迎开新帖交流~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部