找回密码
 立即注册

QQ登录

只需一步,快速开始

Alvin

初级会员

40

主题

121

帖子

359

积分

初级会员

积分
359

微信认证勋章

Alvin
初级会员   /  发表于:2020-11-4 14:51  /   查看:2926  /  回复:7
1金币
本帖最后由 Alvin 于 2020-11-4 14:53 编辑

如图,点击确定之后有没有事件能够取到过滤后剩余的数据集。
试了RangeFiltered事件,结果是全部的数据。
这个链接没太看懂是什么意思。https://gcdn.grapecity.com.cn/showtopic-45396-1-270.html

image.png143025206.png

最佳答案

查看完整内容

自己写个判断如果row是-1那么循环的值就用0,如果rowcount是-1那么循环中的值就用sheet.getRowCount()

7 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-4 14:51:55
来自 8#
自己写个判断如果row是-1那么循环的值就用0,如果rowcount是-1那么循环中的值就用sheet.getRowCount()
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-4 17:34:16
2#
您好,您就看上面链接中帖子里回复的API文档的链接就可以了
http://help.grapecity.com/spread ... getFilterItems.html
类似下面的代码可以获取所有筛选的和被筛选掉的行的index,通过index可以用getArray拿到整行的数据,这个就是你要的了。
var range = rowFilter.range;
    var filteredInRows = [], filteredOutRows = [];
    for (var i = range.row, last = range.row + range.rowCount; i < last; i++) {
        if (rowFilter.isRowFilteredOut(i)) {
filteredOutRows.push(i);
        } else {
filteredInRows.push(i);
        }
    }

回复 使用道具 举报
Alvin
初级会员   /  发表于:2020-11-5 08:56:06
3#
ClarkPan 发表于 2020-11-4 17:34
您好,您就看上面链接中帖子里回复的API文档的链接就可以了
http://help.grapecity.com/spread/SpreadShee ...

这个确定按钮的监听事件是哪个呢?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-5 09:52:44
4#
GC.Spread.Sheets.Events.RangeFiltering和GC.Spread.Sheets.Events.RangeFiltered
一个是正在filter的时候触发,一个是filter结束之后触发
如果是table中的筛选,那就是另外一组事件
GC.Spread.Sheets.Events.TableFiltering和GC.Spread.Sheets.Events.TableFiltered
回复 使用道具 举报
Alvin
初级会员   /  发表于:2020-11-5 10:26:04
5#
ClarkPan 发表于 2020-11-5 09:52
GC.Spread.Sheets.Events.RangeFiltering和GC.Spread.Sheets.Events.RangeFiltered
一个是正在filter的时 ...

麻烦您帮看下这个例子,现在RangeFiltered和RangeFiltering取到的range没有数据呢。

test.rar

677.37 KB, 下载次数: 54

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-5 16:30:03
6#
image.png506238707.png
循环的问题,你可以debug一下看一下,SpreadJS这里有一个特殊的指代就是-1,当row和rowcount处于-1的时候其实意思是指所有行。
这个时候在for循环中就不能直接用-1去循环,否则会出错,这个时候应该把对应的-1进行转换。例如目前的情况row是-1,rowcount是-1代表所有行,那么其实意思跟row是0,rowcount是sheet.getRowCount是一个意思。这个时候就要做特殊处理。
回复 使用道具 举报
Alvin
初级会员   /  发表于:2020-11-5 17:43:49
7#
本帖最后由 Alvin 于 2020-11-5 17:45 编辑
ClarkPan 发表于 2020-11-5 16:30
循环的问题,你可以debug一下看一下,SpreadJS这里有一个特殊的指代就是-1,当row和rowcount处于-1的时候 ...

按照你的意思,如果-1是所有数据,那我如何获取过滤之后的数据呢?这样还是不能实现我想要的效果呀。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部