【问题标题】:Expanding multiple rows in Angular SlickGrid cleans the row expand view of the earlier expanded rows在 Angular SlickGrid 中展开多行会清除之前展开的行的行展开视图
【发布时间】:2020-07-29 11:13:29
【问题描述】:

我遇到了 Angular SlickGrid 行详细信息功能的问题,当我展开多行然后返回到之前的行时,它们变为空白。

我查看了官方演示页面here,问题仍然存在。

复制步骤

  1. 转到示例演示页面here

  2. 转到底部的表格并首先展开一行。在这里展开第 6 行。

  3. 展开另一行。有时打开另一行会清除先前行展开视图的视图。 在展开另一行之前 展开另一行后

  4. 否则,向下滚动一点,再展开另一行,再向下滚动,再展开另一行,然后向上滚动以检查之前展开的行,结果发现前面的行变成了空白。

似乎库正在缓存视图,或者并不总是能够维护多个视图组件。虽然,我不确定。 我尝试切换这些字段并在行详细信息对象中使用了这些字段的多种组合,

rowDetailView: {
...
loadOnce: true,
saveDetailViewOnScroll: false,
useSimpleViewportCalc: true,
singleRowExpand: false,
...
}

提前致谢。

【问题讨论】:

  • 我是 6pac repo 的所有者,它是当前的官方基础 repo。扩展行选项是我没有编写且未正式支持的选项。我怀疑那里潜伏着很多小鬼。 @ghiscoding,Angular repo 的所有者可能有更多的见解。
  • 我是 Angular-Slickgrid 的所有者,我已经在您在 Angular-Slickgrid issue #546 中打开的同一问题上回复了这个问题。
  • 我刚刚添加了这个问题,以确保有人尚未找到解决方案。另外,GIT 还建议在创建错误/问题之前在 StackOverFlow 上查找问题。无论如何,我会继续调查这些问题,如果我能够解决它,我会回到这里。
  • 你说得对,我正在推动在 Stack Overflow 上提出任何问题,而不是在与错误无关的情况下打开 Github 问题。

标签: angular slickgrid angular-slickgrid


【解决方案1】:

在花了几个小时之后,我发现了以下 2 个问题:

  1. 当使用 datasetIdPropName 传递自定义 Id 时,根本不会刷新行详细信息
  2. 在某些情况下,打开新的行详细信息会消隐先前的行详细信息

在单独的 PR(#550#552)中发现并修复了这两个问题

最新版本 2.20.2 现在包含这些修复,Row Detail - Example 现在也可以正常工作。

...所以你的问题的答案是更新到最新版本的 Angular-Slickgrid

【讨论】:

  • 嗨!我对此进行了测试,发现这些行在滚动后重新出现后仍然显示为空白,但是一旦我们停止滚动并再次开始滚动,它们就会重新出现,所以我认为只有一些延迟或重新渲染在他们得到时没有完成在视口中。所以我认为这为我指明了正确的方向。谢谢您的帮助。我会尽力提供充分的证据,并会尽快回复您。
  • SlickGrid 的构建方式是动态地为每一行创建/删除 DOM 元素,顶部/底部还有一个 3 行的缓冲区,SlickGrid 仅渲染 UI 可见的内容以提高性能原因。例如如果用户可以在屏幕上看到 10 行,则 SlickGrid 会呈现 16 行(10 + 3 + 3),并且每次滚动时它都会删除隐藏元素并为下一个可见行创建新元素......所以无论何时滚动,Row细节需要重新渲染,这就是让一切变得具有挑战性的原因,您可以尝试增加minRowBuffer 网格选项(默认为panelRows + 3
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-11
  • 1970-01-01
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
相关资源
最近更新 更多