2013-07-24 34 views
1

我使用组合框和按钮将元素添加到窗体中。每当组合框的值上升或元素被添加时,它会滚动到表单顶部。我希望滚动条保持其位置。我试图通过做保存当前滚动位置如何保存extjs表单上的滚动位置?

 this.myForm.getScrollPosition(); 

但我getScrollPosition不是函数错误。

对此有何帮助?

+0

当你更新组合框为什么你的形式滚动到顶部?我的不是。 – dbrin

+0

嗨Dbrin,它不仅仅是组合框,即使当我添加一个记录到表格中的网格后,添加后,它会在顶部。现在我只想保存当前的滚动位置。我怎样才能做到这一点? – EagleFox

+0

网格问题可以控制有一个网格属性,我不知道为什么它会影响你的形式,虽然。在这里看到这个答案:http://stackoverflow.com/questions/13088506/extjs-grid-panel-store-keep-scrollbar-position-after-load-reload/13149058#13149058 – dbrin

回答

3

如果您使用的是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); 

还有其他的方法,如scrollByscroll但我还没有测试,我想这会帮助你。

文档:http://docs.sencha.com/extjs/4.1.0/#!/api/Ext.dom.Element

+0

谢谢迭戈:) – EagleFox