在我们的实际开发应用中,经常会使用到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;
经过测试,两种方案都可以使用。 欢迎大家关注我的个人博客!!!!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有