2014-10-22 48 views
0

我有一個網格面板(裏面Ext.ux.grid.RowEditor面板),我想滾動到(我Ext.ux.grid.RowEditor沒有完全顯示在底部附近)下方,如何在Ext JS 3.4網格中滾動到底部?

這按保存按鈕我火災事件時

this.MyGrid.getView().on('scrollToBottom', function(){ 
     var inputEl = this.MyGrid.el.dom; 
     inputEl.scrollTop = inputEl.scrollHeight; 
    }, this); 

.....

然後:

this.MyGrid.getView().fireEvent('scrollToBottom',this); 

任何想法,爲什麼它沒有一段代碼不工作滾動?謝謝!

回答

0

我已經找到了解決方案!沒有額外的事件和聽衆,只是

var inputEl = this.myGrid.getView().scroller.dom; 
inputEl.scrollTop = inputEl.scrollHeight; 
2

.on()函數用於爲事件設置偵聽器函數,而不是添加自定義事件。 同樣,.fireEvent()函數用於觸發對象上的事件。 AFAIK你不能定義你自己的事件,並且在ExtJs中沒有「scrollToBottom」事件。

你會想要做的是定義你scrollToBottom代碼的函數,然後從你的保存按鈕單擊處理程序調用該

+1

我們可以使用addEvent方法定義我們自己的事件,然後根據我們的要求引發它。 – Sreek521 2014-10-22 09:10:15

+0

'this.scrollToBottom(); .... scrollToBottom:function(){ var inputEl = this.characteristics.el.dom; inputEl.scrollTop = inputEl.scrollHeight; },'它進入內部函數,但滾動沒有發生 – user3505689 2014-10-22 09:34:30

+0

@ user3505689是您的函數關聯的事件正在調用? – Sreek521 2014-10-22 09:41:48

1

請嘗試使用的addEvent方法的事件添加到您的網格(使用init),然後將該事件作爲偵聽器添加到您的網格中。 必要時觸發事件(在您的情況下,當用戶點擊保存按鈕。)使用fireEvent方法並在您的偵聽器中訂閱它。

示例代碼看起來像下面的(你要添加此事件,然後啓動它。)在初始化組件看起來像下方(低於此指的是網格範圍)添加事件

this.addEvents('SCROLL_TO_BOTTOM'); 

您必須訂閱該事件併爲您的網格設置滾動高度。將以下偵聽器添加到您的網格中。

listeners: { 
     'SCROLL_TO_BOTTOM': this.handleScroll, 
     scope: this 
     } 

函數處理滾動

handleScroll:function(){ 
      var inputEl = this.MyGrid.el.dom; 
      inputEl.scrollTop = inputEl.scrollHeight; 
     } 

希望這有助於你...