设为首页 收藏本站
查看: 1337|回复: 0

[经验分享] 【ExtJS5.1.0.107】Form设置VBox Layout后 获取焦点将导致容器滚动到顶部

[复制链接]

尚未签到

发表于 2015-4-17 09:16:35 | 显示全部楼层 |阅读模式
  前言:
  这段时间在做ExtJS的内容,遇到很多莫名其妙的问题,问题也都不太好精确定位到。后来测试了好久,终于定位到问题所在了。
  就是Form的VBox Layout与msgTarget: 'side'导致的问题。问题定位到之后,由于公司网络限制,翻不了Google,只能上ExtJS官网去碰碰运气了。
  最后也被我找到有人也遇到这个问题  http://www.sencha.com/forum/showthread.php?296531  里面也有人给出了解决方案。
  注:这个问题我只在ExtJS 5.1.0.107上遇到。
  遇到的问题是这样子的:  各位看官可以在https://fiddle.sencha.com/#fiddle/hi9测试一下



1
2
3
4     
5     ExtTemeplate
6     
7     
8
9     
10         Ext.onReady(function(){
11             var itemArrays = [];
12             for (var i = 0; i < 30; i++) {
13                 itemArrays.push(
14                     Ext.create({
15                         xtype: 'textfield',
16                         fieldLabel: 'Label' + (i + 1)
17                     })
18                 );
19             }
20             Ext.create({
21                 xtype:'window',
22                 title:'Window Title',
23                 items:[
24                     Ext.create({
25                         xtype:'form',
26                         layout:'vbox',
27                         autoScroll:true,
28                         width:600,
29                         height:450,
30                         fieldDefaults: {
31                             labelWidth: 80,
32                             labelAlign: 'right',
33                             msgTarget: 'side'
34                         },
35                         items:itemArrays,
36                         buttons:[
37                                 Ext.widget({
38                                     text: '提交',
39                                     type: 'submit',
40                                     xtype: 'button'
41                                 }),
42                                 Ext.widget({
43                                     text: '关闭',
44                                     xtype: 'button'
45                                 })
46                             ]
47                     })
48                 ]
49             }).show();
50         });
51     
52
53
  
  
  解决方案:就是在Extjs加载之后voerride  “Ext.layout.container.Box”即可



1 Ext.define('My.override.VBoxLayoutFix', {
2     override: 'Ext.layout.container.VBox',
3     beginLayout: function(ownerContext) {
4         var scrollable = this.owner.getScrollable();
5         if (scrollable) {
6             this.lastScrollPosition = scrollable.getPosition();
7         }
8         this.callParent(arguments);
9     },
10     completeLayout: function(ownerContext) {
11         var scrollable = this.owner.getScrollable();
12         this.callParent(arguments);
13         if (scrollable) {
14             scrollable.scrollTo(this.lastScrollPosition);
15         }
16     }
17 });
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-57965-1-1.html 上篇帖子: vbox 安装ylmf4.0 问题 下篇帖子: vbox虚拟机安装Windows8方法及注意事项
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表