首页 > 解决方案 > sap.m.Table 更新后的滚动位置变化

问题描述

我在sap.m.Table.

简而言之:当我尝试输入第 11 行或第 12 行的数据时,滚动条一直停留在同一位置!但是从第 13 行或更多,当我尝试输入数据时,滚动条每次都会向上移动,这让用户感到沮丧!

我正在使用带有图标选项卡的对象页面布局。一个选项卡中的表格和第二个选项卡上的其他信息。

在第 13 行,滚动条向下。

现在当我输入数据时,滚动条向上移动:

输入数据后滚动条向上移动。

标签: javascriptsapui5sap-fiori

解决方案


尝试添加growing="true"到表中以启用扩展更改检测。如果模型是 a JSONModelkey聚合绑定信息对象中也需要 a :

<Table xmlns="sap.m"
  growing="true"
  items="{
    path: 'myModel>/myCollection',
    key: <property name of which values are unique. Only if myModel is NOT an ODataModel!>
  }">

该问题很可能是由重新渲染整个表引起的:用户输入数据→输入的值存储在模型中→模型通知其所有绑定以检测更改→输入字段中的绑定看到其绑定value已更改→输入字段使其自身无效并指示其父级也重新渲染 → 整个表格被重新渲染(即表格的旧 HTML 元素被新的 HTML 元素替换) → 表格必须重新应用焦点 → 不记得以前设置焦点的位置,所以表格的第一个元素(这里:表格标题)获得焦点。→ 浏览器注意到焦点变化并相应地改变滚动位置。

使用growing="true",启用扩展更改检测,这可以防止重新呈现整个列表控件。


推荐阅读