我使用组合框和按钮将元素添加到窗体中。每当组合框的值上升或元素被添加时,它会滚动到表单顶部。我希望滚动条保持其位置。我试图通过做保存当前滚动位置如何保存extjs表单上的滚动位置?
this.myForm.getScrollPosition();
但我getScrollPosition不是函数错误。
对此有何帮助?
我使用组合框和按钮将元素添加到窗体中。每当组合框的值上升或元素被添加时,它会滚动到表单顶部。我希望滚动条保持其位置。我试图通过做保存当前滚动位置如何保存extjs表单上的滚动位置?
this.myForm.getScrollPosition();
但我getScrollPosition不是函数错误。
对此有何帮助?
如果您使用的是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
谢谢迭戈:) – EagleFox
当你更新组合框为什么你的形式滚动到顶部?我的不是。 – dbrin
嗨Dbrin,它不仅仅是组合框,即使当我添加一个记录到表格中的网格后,添加后,它会在顶部。现在我只想保存当前的滚动位置。我怎样才能做到这一点? – EagleFox
网格问题可以控制有一个网格属性,我不知道为什么它会影响你的形式,虽然。在这里看到这个答案:http://stackoverflow.com/questions/13088506/extjs-grid-panel-store-keep-scrollbar-position-after-load-reload/13149058#13149058 – dbrin