Ext實現滾動條一直處於底部的方法

業餘草發表於2014-07-28

在我們的實際開發應用中,經常會使用到ext的常用控制元件textarea。對於一些form表單,錄入資訊的備註,簡介等等資訊較多的時候就會使用的textarea。最近在所一個全網拓撲圖的時候,以及網路診斷ping,telnet連線測試等等功能的時候,出現了一些比較辣手的問題。就是通過ajax請求後臺資料後,把新資料動態的顯示到textarea中,textarea的滾動條不會定位到最底部。始終顯示在top的位置。經過研究發現,ext對自身的textarea進行了封裝,使用table佈局。我們根據getCmp()方法獲取的控制元件物件實際上是一個table,這是我們在對table設定它的scrollTop和獲取它的scrollHeight屬性都會失敗。而我們真正需要的是textarea本身,而不是它的父元件table。

這裡我把我的實現方法分享給各位網友,使大家少走一些彎路。

<pre name="code" class="javascript">xtype:'container',
region:'center',
layout:'fit',
items:[{
	margin:'10 20 0 0',
	xtype     : 'textarea',
	grow      : true,
	id      : 'textarea_id',
	fieldLabel: '',
	readOnly :true,
	autoScroll : true
}


解決方案1:

var textarea=Ext.getCmp('textarea_id');
textarea.bodyEl.dom.childNodes[0].scrollTop=textarea.bodyEl.dom.childNodes[0].scrollHeight;
解決方案2:

document.getElementById('textarea_id-inputEl').scrollTop = document.getElementById('textarea_id-inputEl').scrollHeight;
經過測試,兩種方案都可以使用。
歡迎大家關注我的個人部落格!!!!
如有不懂,疑問或者欠妥的地方,請加QQ群:135430763   進行反饋,共同學習!

相關文章