javascript - sap.m.Table 更新后的滚动位置变化
问题描述
我在sap.m.Table
.
简而言之:当我尝试输入第 11 行或第 12 行的数据时,滚动条一直停留在同一位置!但是从第 13 行或更多,当我尝试输入数据时,滚动条每次都会向上移动,这让用户感到沮丧!
我正在使用带有图标选项卡的对象页面布局。一个选项卡中的表格和第二个选项卡上的其他信息。
现在当我输入数据时,滚动条向上移动:
解决方案
尝试添加growing="true"
到表中以启用扩展更改检测。如果模型是 a JSONModel
,key
聚合绑定信息对象中也需要 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"
,启用扩展更改检测,这可以防止重新呈现整个列表控件。
推荐阅读
- postgresql - Azure Hyperscale (Citus) 无法使用 citus 帐户创建数据库
- php - PHP使用回显(未定义的索引)从数组中获取键
- python - 如何在 Python 的数据框中转换列表(水平)?
- mongodb - 如何为 Mongo db 相关异常快速失败 Spring Boot 应用程序?
- python - 将多个值与无进行比较
- python - 在 pandas 中计算加权平均 groupby
- cairo - 如何重置开罗的当前点?
- java - 在 Eclipse 上测试成功,在 Jenkins 上测试失败
- php - 拉拉维尔。邮递员。日期未从数组写入数据库
- arrays - 如何将已经在 1 页上的数据集移动到单独的页面?