拾趣ヾ 发表于 2023-12-6 16:36:08

16.2.6 第五行筛选前未被隐藏,筛选后,再取消筛选,第五行被遮挡

本帖最后由 Richard.Huang 于 2024-2-1 16:56 编辑

产品:SpreadJS
版本:V16.2.6
调研编号:SJS-22520
LastReview:2024/2/1
该问题已经在V17.0.3中得到修复,您可以通过升级版本来解决该问题

16.2.6 冻结窗口的情况下,第五行筛选前未被隐藏,筛选后,再取消筛选,第五行被遮挡,需要手动下滑动展示

Richard.Huang 发表于 2023-12-6 18:08:18

您好,我查看了您的录屏,也复现了您描述的情景,但是取消筛选后,并不是筛选掉的行没有展示出来,只是被冻结行给遮住了。请问您的需求是什么,具体使用场景是什么,这个被遮挡的设计会影响您的什么业务呢。

请详细描述您的场景等信息,我们下来会对您描述的内容进行讨论,看能否提供相应的解决方案或者作为需求提上日程。

拾趣ヾ 发表于 2023-12-6 18:29:10

用户反馈,这个问题非常影响体验

Richard.Huang 发表于 2023-12-7 10:12:36

拾趣ヾ 发表于 2023-12-6 18:29
用户反馈,这个问题非常影响体验

您好,了解您的需求了,根据您的需求,我想我们可以维护一个变量记录用户当前的top行,然后我们通过监听用户清除筛选的操作来将遮盖的行展示出来,示例代码如下,其中topRowIndex是一个全局变量
topRowIndex = sheet.getViewportTopRow(1);
sheet.bind(GC.Spread.Sheets.Events.TopRowChanged, function (sender, args) {
    topRowIndex = args.newTopRow
});
spread.bind(GC.Spread.Sheets.Events.ActiveSheetChanged, function (sender, args) {
    topRowIndex = args.newSheet.getViewportTopRow(1);
    args.oldSheet.unbind(GC.Spread.Sheets.Events.TopRowChanged);
    args.newSheet.bind(GC.Spread.Sheets.Events.TopRowChanged, function (sender, args) {
      topRowIndex = args.newTopRow
    });
});

spread.commandManager().addListener("anyscLicenser", function () {
    for (const element of arguments) {
      let cmd = element.command;
      if (cmd.cmd === "Designer.clearRowFilter") {
            var as = spread.getActiveSheet();
            as.showRow(topRowIndex, GC.Spread.Sheets.VerticalPosition.top);
      }
    }
});
后续我们会对该需求进行讨论,本贴将被移动到需求反馈区

拾趣ヾ 发表于 2023-12-8 10:08:04

现在业务补丁太多,框架能不能在功能层面解决这个问题呢

Richard.Huang 发表于 2023-12-8 17:35:03

您好,这个目前没有更好的解决方案了。

我们这边将这个问题提给产品那边,并添加到产品需求库中了,后续有进展的话我会在本贴中回复您。

拾趣ヾ 发表于 2023-12-14 10:46:00

我理解这个问题可能是个bug,如果是需求的话这么设计是出于怎样的考量呢

Richard.Huang 发表于 2023-12-14 15:07:19

本帖最后由 Richard.Huang 于 2024-1-23 11:18 编辑

拾趣ヾ 发表于 2023-12-14 10:46
我理解这个问题可能是个bug,如果是需求的话这么设计是出于怎样的考量呢
该设计从版本之初就存在,对于该问题还需要进行调研,包括您所说的当初设计时的考量,也需要进行调研。调研编号:SJS-22520

Ellia.Duan 发表于 2024-3-25 11:27:42

此问题已在17.0.3版本修复,您可以实际下载测试下。
页: [1]
查看完整版本: 16.2.6 第五行筛选前未被隐藏,筛选后,再取消筛选,第五行被遮挡