如何在 extjs 表单上保存滚动位置?
Posted
技术标签:
【中文标题】如何在 extjs 表单上保存滚动位置?【英文标题】:How to save scroll position on an extjs form? 【发布时间】:2013-07-24 16:04:36 【问题描述】:我有一个带有组合框和按钮的长表单,可以将元素添加到表单中。每次更新组合框的值或添加元素时,它都会向上滚动到表单的顶部。我希望滚动条保持其位置。我尝试通过这样做来保存当前滚动位置
this.myForm.getScrollPosition();
但我得到 getScrollPosition 不是函数错误。
有什么帮助吗?
【问题讨论】:
为什么更新组合框时表单会滚动到顶部?我的没有。 您好 Dbrin,这不仅仅是组合框,即使我将记录添加到表单内的网格中,添加后,它也会在顶部。现在我只想保存当前的滚动位置。我该怎么做? 可以控制网格问题有一个网格属性,但我不确定它为什么会影响您的表单。在此处查看此答案:***.com/questions/13088506/… 【参考方案1】:如果您使用 extjs,有一种方法可以使用 Ext.dom.Element 类来操作滚动,Extjs 中的每个组件都继承自它,然后如果您添加一个修改表单高度或宽度的新组件,您可以首先使用以下方法获取该组件的高度和宽度:
var newcompwidth = comboboxexample.getWidth();
var newcompheight = comboboxeample.getHeight();
稍后您可以使用 scrollTo 方法修改滚动值,如下所示:
myformcontainer.getEl().scrollTo('Top',myformcontainer.getEl().getScroll().top - newcompheight);
myformcontainer.getEl().scrollTo('Top',myformcontainer.getEl().getScroll().left - newcompwidth);
还有其他方法,例如scrollBy
或scroll
,但我还没有测试过,我想这会对你有所帮助。
文档:http://docs.sencha.com/extjs/4.1.0/#!/api/Ext.dom.Element
【讨论】:
以上是关于如何在 extjs 表单上保存滚动位置?的主要内容,如果未能解决你的问题,请参考以下文章