拖动滚动条时 Blazor Virtualize 组件和滚动中断

Posted

技术标签:

【中文标题】拖动滚动条时 Blazor Virtualize 组件和滚动中断【英文标题】:Blazor Virtualize component and broken scrolling when dragging scrollbar 【发布时间】:2021-08-18 13:00:02 【问题描述】:

我有一个带有行虚拟化的自定义数据网格。

当我通过拖动滚动条向下滚动时,滚动会中断,就像在呈现新的“页面”之前一样。

你知道为什么会发生这种情况吗?

<div class="sg-container" style="height:200px">
    <div class="simple-grid" style="grid-template-columns: 3em minmax(5em, auto); ">
        <Virtualize Items="_products" 
                    ItemSize="32">
            <ItemContent>
                <div class="sg-row sg-row ">
                    <div class="sg-cell ">@context.Id</div>
                    <div class="sg-cell ">@context.Name</div>
                </div>
            </ItemContent>
        </Virtualize>

    </div>
</div>

演示 (REPL) 在这里:https://blazorrepl.com/repl/mvkBuHuB22FVBxY258

【问题讨论】:

您的OverscanCount 设置为什么?在我看来,您并没有让它在视图区域之外加载足够数量的项目。下一个要查看的部分将是您的 ItemsProvider 逻辑,您能更新一下吗? 如果 OverscanCount 太低,就会有占位符,它们就在那里。滚动也被绑定到数组的 Items 破坏了,所以它可能不会被 ItemsProvider 破坏 当然,但是我在没有提供程序的情况下使用 ICollection 的项目成功地将 100 到 1000 个项目加载到 &lt;tbody /&gt; 中,没有任何闪烁、滚动问题或缺少条目。如果您使用极其简化的实现重新创建它会发生什么? 我没有使用&lt;table&gt; 元素。查看我的 repl 以获得最简单的 bug 演示 【参考方案1】:

理论上他们应该根据this 修复了这个错误。你的情况可能不同,所以也许值得提交一个错误,因为这对我来说绝对是一个 Blazor 错误。

【讨论】:

这是一个答案还是一个输入? 这可能是一条评论。另一方面,问题是“你知道为什么会发生这种情况吗?”,这在技术上回答了这个问题。

以上是关于拖动滚动条时 Blazor Virtualize 组件和滚动中断的主要内容,如果未能解决你的问题,请参考以下文章

WPF拖动DataGrid滚动条时内容混乱的解决方法

怎样才能 使dbgrideh 拖动滚动条时不改变当前选中记录

web自动化中页面多个滚动条时的拖动操作?

使用 jQuery UI Draggable,使用滚动条时如何避免拖动?

我安装完windowsxp后,只要打开有滚动条的页面,拖动滚动条时页面就会抖动.为啥?

如何解决MFC单文档滚动条拖动时的重影问题(高分)