2013-07-24 40 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