Ext实现滚动条一直处于底部的方法

在我们的实际开发应用中,经常会使用到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;

经过测试,两种方案都可以使用。 欢迎大家关注我的个人博客!!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券