是的,SpreadJS支持自定义筛选框,可参考楼上所言。但是您的场景可能重点是根据旧数据和新数据设置筛选项,SpreadJS原生的HideRowFilter筛选框中的数据筛选项以及选项的选中/未选中状态都由SpreadJS管理着,无法获取到,所以自定义实现的话可能要完全自定义逻辑了,工程量较大且逻辑也较复杂。
我们有这样一个思路:每次获取到的新数据增量填充在Worksheet页中,这样可以保留旧数据;然后根据所有数据所在的范围创建新的筛选器取代旧的筛选器;每次新获取数据完成装填后通过Worksheet:scroll()将可视区域滚动到新数据所在区域,代替原来的分页。
这个方案可能会影响您当前的分页逻辑,且如果数据量很庞大也可能会影响性能。可是按照您的分页逻辑,当前Worksheet中的数据也仅是当次调用接口获取到的局部数据,即便筛选框中可以包含旧有数据,但是筛选了之后还是无法显示在当前Worksheet。您可以综合评估下这个方案是否可行。 |