ExtJS之布局

ExtJS之布局篇 Ext布局总的来说是很灵活的,因此我觉得有必要一块探讨一下。 Ext常用的布局都在Ext.layout下,这里几乎涵盖了所有的布局方式(但是值得注意的是通常我们不是直接通过"new"来创建这些类的对象然后往里面添加控件使用,而是作为控件一个配置属性使用让Ext自动创建对应的类),满足开发者需求。那么我们就其中常用的方式逐一介绍。 Border布局 Border布局是Ext中常用布局方式(经常用到整个页面的总体布局),感觉用的几率很大。在看代码之前先熟悉一种特殊的容器ViewPort,它是对于浏览器视窗 阅读详情
Ext布局总的来说是很灵活的,因此我觉得有必要一块探讨一下。

Ext常用的布局都在Ext.layout下,这里几乎涵盖了所有的布局方式(但是值得注意的是通常我们不是直接通过"new"来创建这些类的对象然后往里面添加控件使用,而是作为控件一个配置属性使用让Ext自动创建对应的类),满足开发者需求。那么我们就其中常用的方式逐一介绍。

Border布局

Border布局是Ext中常用布局方式(经常用到整个页面的总体布局),感觉用的几率很大。在看代码之前先熟悉一种特殊的容器ViewPort,它是对于浏览器视窗的抽象,你可以将它理解为浏览器的可见区域,它将渲染到document.body并自动调整大小,一个页面只能创建一个Viewport。

[javascript] view plain copy print ?
  1. new Ext.Viewport({  
  2.     layout:"border",  
  3.     items:[  
  4.         {region:"north",title:"Up",height:50},  
  5.         {region:"south",title:"Down",height:50},  
  6.         {region:"west",title:"Left",width:200},  
  7.         {region:"east",title:"Right",width:200},  
  8.         {region:"center",title:"Center"}  
  9.     ]  
  10. });  

上面的代码很简单,首先Viewport将自动占满整个窗口,然后我们在Viewport中使用border布局(就是上面的layout:'border')。Border布局的用法就是对于其子容器使用region来指示子容器所处的位置(例如上面region:'center'),之后子容器就会显示在其父所在容器的相应位置,这些位置是固定的只有上面我们列出的五个。但是请注意这五个部分不是必须都有的,但是至少要包含"center"(因为它是主体,没有主体如何放内容啊)。

效果:

上面的效果看起来不是太好看,而且我们上面说通常情况下我们没有必要五个部分都有的,那么我们稍微修改一下:

[javascript] view plain copy print ?
  1. var pnNorth=new Ext.Panel({  
  2.     id:'pnNorth',  
  3.     autoWidth:true,  
  4.     heigth:80,  
  5.     frame:true,  
  6.     region:'north',  
  7.     html:'这里放置页头内容'  
  8. });  
  9. var pnWest=new Ext.Panel({  
  10.     id:'pnWest',  
  11.     title:'菜单项',  
  12.     width:200,  
  13.     heigth:'auto',  
  14.     split:true,//显示分隔条  
  15.     region:'west',  
  16.     collapsible:true  
  17.       
  18. });  
  19. var pnCenter=new Ext.TabPanel({  
  20.     region:'center',  
  21.     activeTab:0,  
  22.     items:[  
  23.         {  
  24.             title:'收件箱',  
  25.             authHeight:true,  
  26.             closable:true,//是否可关闭  
  27.             html:'这里显示所收邮件。。。'  
  28.         }  
  29.     ]  
  30. });  
  31. var vp=new Ext.Viewport({  
  32.     layout:"border",  
  33.     items:[  
  34.         pnNorth,  
  35.         pnWest,  
  36.         pnCenter  
  37.     ]  
  38. });  

效果:

还不错吧!

Column布局

从字面就知道Column布局就是列布局,例如我一个panel中还有两个子panel现在想要左侧显示一个右侧显示一个怎么办?这是可以选择Column将父Panel分为两列,左侧一个右侧一个。

[javascript] view plain copy print ?
  1. var pnSub1=new Ext.Panel({  
  2.     height:300,  
  3.     columnWidth:.3,  
  4.     html:'这是子panle1'  
  5. });  
  6. var pnSub2=new Ext.Panel({  
  7.     height:300,  
  8.     columnWidth:.7,  
  9.     html:'这是子panle2'  
  10. });  
  11. var pn=new Ext.Panel({  
  12.     id:'pn',  
  13.     title:'父Panel',  
  14.     renderTo:'divPanel',  
  15.     width:800,  
  16.     height:300,  
  17.     layout:'column',  
  18.     items:[  
  19.         pnSub1,  
  20.         pnSub2  
  21.     ]  
  22. });  

效果

首先在父容器中设置"layout"为"column"然后在子容器中指定"columnWidth"的值(是比例)就可以显示了,很简单。

Fit布局

如果从复杂度来说fit布局应该算是最简单的了,设置是最少的。Fit布局同样也是设置父容器的layout属性,但是子容器不用设置任何相应属性。它的目的就是为了让子容器能够自适应于父容器(用了fit布局子容器设置宽度无效),但是请注意如果父容器有多个子容器,只会显示第一个。

[javascript] view plain copy print ?
  1. var pnSub1=new Ext.Panel({  
  2.     title:"子panel1",  
  3.     html:"子panel1(会显示)"  
  4. });  
  5. var pnSub2=new Ext.Panel({  
  6.     title:"子panel2",  
  7.     html:"子panel2(不会显示)"  
  8. });  
  9. var pn=new Ext.Panel({  
  10.     renderTo:"divPanel",  
  11.     title:"父panel",  
  12.     width:800,  
  13.     height:200,  
  14.     layout:"fit",  
  15.     items:[  
  16.         pnSub1,  
  17.         pnSub2  
  18.     ]  
  19. });  

效果:

可以看出只显示了第一个panle,而且它是自适应的,我们没有设置高度和宽度。

Table布局

Table布局多数用在较为复杂的情况下,想一想做web开发总不能就上面几种简单情况吧,因此也就是说Table布局还是很常用的。当然,但是和其他布局相比其参数设置也稍微一些(不用怕,事实上还是很少的)。

[javascript] view plain copy print ?
  1. new Ext.Panel({  
  2.     title:"父Panel",  
  3.     renderTo:"divPanel",                      
  4.     width:900,  
  5.     height:200,  
  6.     layout:"table",  
  7.     layoutConfig:{  
  8.         columns:3                     
  9.     },  
  10.     defaults:{  
  11.         height:100,  
  12.         width:300  
  13.     },  
  14.     items:[  
  15.         {  
  16.             html:"第一个子panel(行:1,列:1)",  
  17.             rowspan:2,//合并行   
  18.             height:200  
  19.         },  
  20.         {  
  21.             html:"第二个子panel(行:1,列:2)",  
  22.             colspan:2,//合并列   
  23.             width:600  
  24.         },  
  25.         {  
  26.             html:"第三个子panel(行:2,列:1)"  
  27.         },  
  28.         {  
  29.             html:"第四个子panel(行:2,列:2)"  
  30.         }  
  31.     ]  
  32. });  

效果:

我们上面的布局就是两行三列的布局,但是注意一点在layoutConfi中我们无需指定有几行,只要指定由几列就可以了,有几行往下写几行就可了。另外一点就是对于合并行列的时候记得指明高和宽否则可能出现你合并的行跟未合并的单元格一样高的情况。同Ext中多数布局一样也是在父容器指定对应的布局为"table",然后子容器设置对应的参数(对table布局就是colspan等)。

上面的布局或许有些幼稚,真正这样做的不太多,我们稍微修改一下:

[javascript] view plain copy print ?
  1. new Ext.Panel({  
  2.     id:'pn',  
  3.     title:"新闻",  
  4.     renderTo:"divPanel",                      
  5.     width:800,  
  6.     height:500,  
  7.     layout:"table",  
  8.     bodyStyle:'padding:10 10 10 10',  
  9.     layoutConfig:{  
  10.         columns:2  
  11.     },  
  12.     defaults:{  
  13.         height:220,  
  14.         width:380,  
  15.         frame:true  
  16.     },  
  17.     items:[  
  18.         {  
  19.             title:'国际',  
  20.             html:"第一个子panel(行:1,列:1)",  
  21.             bodyStyle:'padding:20'  
  22.         },  
  23.         {  
  24.             title:'国内',  
  25.             html:"第一个子panel(行:1,列:1)",  
  26.             bodyStyle:'padding:20'  
  27.         },  
  28.         {  
  29.             title:'新闻组图',  
  30.             colspan:2,  
  31.             html:"第一个子panel(行:1,列:1)",  
  32.             bodyStyle:'padding:20;',  
  33.             width:770  
  34.         }  
  35.     ]  
  36. });  

注意,还有样式:

  1. #pn td {  
  2.     padding:5px;  
  3. }  

效果:

上面看起来还可以吧,这就是table布局出来的啊,O(∩_∩)O~!

Form布局

这个布局是专门为表单而设计的布局方式,当然多数是用在FormPanel中(它也是FormPanel默认的布局方式)。我们前面说过FormPanel但是没有涉及复杂布局,事实实际应用中更多的是较复杂的布局。

 

比较一下下面两幅图有什么区别,我想除了标题是没有任何区别的吧,但是事实上这是两种组件,一个是Panel另一个是FormPanel:

[javascript] view plain copy print ?
  1. new Ext.Panel({  
  2.     renderTo:"divPanel",  
  3.     title:"这个是Panel",  
  4.     width:300,  
  5.     height:120,  
  6.     bodyStyle:'padding:10',  
  7.     layout:"form",  
  8.     hideLabels:false,  
  9.     labelAlighn:"right",  
  10.     defaultType:"textfield",  
  11.     items:[  
  12.         {fieldLabel:"姓名",name:"name"},  
  13.         {fieldLabel:"年龄",name:"age"}  
  14.     ]  
  15. });  
  16. new Ext.FormPanel({  
  17.     renderTo:"divPane2",  
  18.     title:"这个是FormPanel",  
  19.     width:300,  
  20.     height:120,  
  21.     bodyStyle:'padding:10',  
  22.     layout:"form",  
  23.     hideLabels:false,  
  24.     labelAlighn:"right",  
  25.     defaultType:"textfield",  
  26.     items:[  
  27.         {fieldLabel:"姓名",name:"name"},  
  28.         {fieldLabel:"年龄",name:"age"}  
  29.     ]  
  30. });  

从代码我们也可看出来,区别就是对于Panel我们配置了layout为form,从这也能看出来说FormPanel默认的布局就是form布局,所以对于习惯于用Panel而不习惯用FormPanel的朋友尽管用Panel,但是一定要考虑好提交的问题,如果使用panel的话,要做提交可是要一个个获得控件的值的,而FromPanel则不需要。

另外一我们需要扩展一下,因为实际的布局要比这复杂。

这个表单虽然不算是太复杂,但是比较有代表性,基本上常用的控件都放上去了,也包含了常见的radio多列布局。好了看代码吧:

[javascript] view plain copy print ?
  1. Ext.onReady(function(){  
  2.     var pnRow1=new Ext.Panel({  
  3.         border:false,  
  4.         layout:'column',  
  5.         items:[  
  6.             new Ext.Panel({  
  7.                 columnWidth:.5,  
  8.                 layout:'form',  
  9.                 border:false,  
  10.                 labelWidth:40,  
  11.                 labelAlign:'right',  
  12.                 items:[  
  13.                     {  
  14.                         xtype:'textfield',  
  15.                         fieldLabel:'姓名',  
  16.                         name:'uname',  
  17.                         anchor:'95%'  
  18.                     }  
  19.                 ]  
  20.             }),  
  21.             new Ext.Panel({  
  22.                 columnWidth:.3,  
  23.                 layout:'form',  
  24.                 border:false,  
  25.                 labelWidth:40,  
  26.                 labelAlign:'right',  
  27.                 items:[  
  28.                     {  
  29.                         xtype:'radio',  
  30.                         fieldLabel:'性别',  
  31.                         boxLabel:'男',  
  32.                         name:'sex',  
  33.                         inputValue:'男',  
  34.                         checked:true,  
  35.                         anchor:"95%"  
  36.                     }  
  37.                 ]  
  38.             }),  
  39.             new Ext.Panel({  
  40.                 columnWidth:.2,  
  41.                 layout:'form',  
  42.                 border:false,  
  43.                 labelWidth:1,  
  44.                 items:[  
  45.                     {  
  46.                         xtype:'radio',  
  47.                         boxLabel:'女',  
  48.                         name:'sex',  
  49.                         inputValue:'女',  
  50.                         labelSeparator:'',  
  51.                         anchor:"95%"  
  52.                     }  
  53.                 ]  
  54.             })  
  55.         ]  
  56.     });  
  57.     var pnRow2=new Ext.Panel({  
  58.         layout:'column',  
  59.         border:false,  
  60.         items:[  
  61.             new Ext.Panel({  
  62.                 columnWidth:.5,  
  63.                 layout:'form',  
  64.                 border:false,  
  65.                 labelWidth:40,  
  66.                 labelAlign:'right',  
  67.                 items:[  
  68.                     {  
  69.                         xtype:'datefield',  
  70.                         name:'birthday',  
  71.                         fieldLabel:'生日',  
  72.                         anchor:'95%'  
  73.                     }  
  74.                 ]  
  75.             }),  
  76.             new Ext.Panel({  
  77.                 columnWidth:.5,  
  78.                 layout:'form',  
  79.                 border:false,  
  80.                 labelWidth:40,  
  81.                 labelAlign:'right',  
  82.                 items:[  
  83.                     {  
  84.                         xtype:'combo',  
  85.                         name:'study',  
  86.                         store:['专科','本科','硕士','博士'],  
  87.                         fieldLabel:'学历',  
  88.                         anchor:'95%'  
  89.                     }  
  90.                 ]  
  91.             })  
  92.         ]  
  93.     });  
  94.     var pnRow3=new Ext.Panel({  
  95.         layout:'column',  
  96.         border:false,  
  97.         items:[  
  98.             new Ext.Panel({  
  99.                 columnWidth:.3,  
  100.                 layout:'form',  
  101.                 border:false,  
  102.                 labelWidth:40,  
  103.                 labelAlign:'right',  
  104.                 items:[  
  105.                     {  
  106.                         xtype:'checkbox',  
  107.                         name:'hoby',  
  108.                         inputValue:'computer',  
  109.                         fieldLabel:'爱好',  
  110.                         boxLabel:'计算机',  
  111.                         anchor:'95%'  
  112.                     }  
  113.                 ]  
  114.             }),  
  115.             new Ext.Panel({  
  116.                 columnWidth:.3,  
  117.                 layout:'form',  
  118.                 border:false,  
  119.                 labelWidth:1,  
  120.                 labelAlign:'right',  
  121.                 items:[  
  122.                     {  
  123.                         xtype:'checkbox',  
  124.                         name:'hoby',  
  125.                         inputValue:'football',  
  126.                         boxLabel:'足球',  
  127.                         labelSeparator:'',  
  128.                         anchor:'95%'  
  129.                     }  
  130.                 ]  
  131.             }),  
  132.             new Ext.Panel({  
  133.                 columnWidth:.4,  
  134.                 layout:'form',  
  135.                 border:false,  
  136.                 labelWidth:1,  
  137.                 labelAlign:'right',  
  138.                 items:[  
  139.                     {  
  140.                         xtype:'checkbox',  
  141.                         name:'hoby',  
  142.                         intputValue:'tinyTable',  
  143.                         boxLabel:'乒乓球',  
  144.                         labelSeparator:'',  
  145.                         anchor:'95%'  
  146.                     }  
  147.                 ]  
  148.             })  
  149.         ]  
  150.     });  
  151.       
  152.     var pnRow4=new Ext.Panel({//当然这里直接在FormPanel中添加TextField就可以了,因为只有一行,但是为了一致以及对齐方便我这里还是放到了panel中  
  153.         layout:'form',  
  154.         border:false,  
  155.         labelWidth:40,  
  156.         labelAlign:'right',  
  157.         items:[  
  158.             {  
  159.                 xtype:'textfield',  
  160.                 name:'email',  
  161.                 fieldLabel:'住址',  
  162.                 anchor:'98%'  
  163.             }  
  164.         ]  
  165.     });  
  166.     var pnRow5=new Ext.Panel({  
  167.         layout:'form',  
  168.         border:false,  
  169.         labelWidth:40,  
  170.         labelAlign:'right',  
  171.         items:[  
  172.             {  
  173.                 xtype:'htmleditor',  
  174.                 name:'note',  
  175.                 fieldLabel:'备注',  
  176.                 height:200,  
  177.                 anchor:'98%'  
  178.             }  
  179.         ]  
  180.     });  
  181.       
  182.     new Ext.FormPanel({  
  183.         renderTo:"divPanel",  
  184.         title:"个人信息录入",  
  185.         width:600,  
  186.         bodyStyle:'padding:10px',  
  187.         layout:"form",  
  188.         items:[  
  189.             pnRow1,  
  190.             pnRow2,  
  191.             pnRow3,  
  192.             pnRow4,  
  193.             pnRow5  
  194.         ]  
  195.     });  
  196. });  

代码看似比较多,其实很容易理解,Ext有一个特点就是组件的自由组合,那么我们只需要拆分来看就可以了。从大的方面是一个FormPanel,其中有五行内容(这个五个panel当然是使用的父容器FormPanel的默认布局"form"了,所以依次向下放)。先暂且不管第四行和第五行,我们看看其他三行,其实格式基本上是一样的,就是首先这一行放到一个panel中(假设叫做Panel_A),利用"column"布局来解决多列问题,让后再其Item中我们再再每个column中放一个panel(Panel_B)而这个panel我们使用"form"布局(这个panel中其实都只有一个form控件,所以当然不用form布局也是可以的,之所以用form布局是为了能够使用labelWidth这样的form特有属性),然后在其中放一个form控件,这样也就解决了多列布局的问题。关于第四列和第五列本身就是单列的也没有什么好解释的。上面的方法是通用的,基本上用这种方法所有的复杂表单布局都可以解决了。可能会有人问遇到合并行的怎么办?其实利用上面的方法很容易的,例如假设上面"性别"和"学历"是合并的,那么我们就没有必要用两个panel放两行了,就当做一行,只不过在第一列的Panel_B中放两个form控件就可以了(因为它是form布局,默认就会在两行)。

那么还有没有其他方法呢?答案是肯定的,那就是table布局,个人感觉对于较为规则的多列布局用table还是不错的,不过像上面的例子这样从总体上看是两列的布局,但是有些列里面又是多列我认为用table也是太简单。

总结:

上面说了接种布局,其实简单总结起来border布局一般作为页面整体布局来使用;fit布局适用于那种需要将子类完全占满父类容器的情况;column布局用于多列;form是一种表单特有布局方式,实质是一行一控件的形式;table布局适用多行多列但是有时宽高不太容易控制。而且值得强调的一点就是给一个控件设置layout属性,其实指的是其内部控件的布局方式而不是它本身的布局,这点要搞清楚。

从工艺文件到寄生分析:手把手教你用华大九天RCExplorer做版图预检(附ITF文件解析) 本文详细介绍了华大九天RCExplorer工具在模拟IC和版图设计中的应用,从工艺文件解析到寄生参数提取的全流程。通过ITF文件的深度解析和实战案例,帮助工程师掌握金属层、介质层及通孔参数的关键影响,提升设计效率与准确性。文章还提供了与StarRC工作流集成的实用技巧,是国产EDA工具应用的权威指南。 阅读详情

相关推荐

别再乱选离散化方法了!从零到一用Matlab对比差分、双线性Tustin和预矫正的实战效果

本文深入探讨了Matlab中四种主流离散化方法(差分、双线性Tustin和预矫正)的实战效果对比,帮助工程师在数字控制系统设计中做出明智选择。通过详细的理论分析和Matlab代码示例,展示了不同方法在稳定性、频率响应和计算复杂度上的差异,并提供了针对不同场景的工程选用指南。

weixin_28737603的博客 141

Extjs--12种布局方式

按照Extjs的4.1的文档来看,extjs的布局方式大致有12种,下面一一介绍,有些代码就是文档中的。 1.Border 边界布局 border布局,最多可以将页面分割为“东南西北中”五部分,是最常用的一种布局方式。我们可以根据项目的实际需求保留其中的部分区域,而将其他部分隐藏掉。 1 1.1效果图预览 这里写图片描述 1.2 代码demo Ext.onReady(func...

Alex的博客 865

黑金AXU9EG开发板深度学习部署全流程解析

本文详细解析了黑金AXU9EG开发板的深度学习模型部署全流程,从环境搭建、模型转换到上板验证,提供了实用的技术指导和优化技巧。该开发板基于Xilinx Zynq UltraScale+ MPSoC架构,特别适合边缘计算场景,通过FPGA加速实现高效AI推理。

weixin_29062613的博客 447

Ext 常用布局

Ext 常用布局 hbox 和 vbox 一个是水平布局,一个是垂直方向的布局 // vbox new Ext.Container({ width: 1000, cls: 'sf-wrap', layout: { type: 'vbox', align: 's...

VFrank 1310

Windows 10/11系统下TurboDesign 6.4.0完整安装指南(附序列号+破解补丁)

本文提供Windows 10/11系统下TurboDesign 6.4.0的完整安装指南,涵盖系统环境预检、安装程序部署、序列号处理及破解补丁部署等关键步骤。通过详细的安装教程和优化配置,帮助用户高效完成这款涡轮机械设计软件的安装与调试,解决常见兼容性问题。

s4t5u6v的博客 1030

逆向工程实战:如何一步步破解京东APP的sign签名算法(附Frida脚本)

本文详细解析了京东APP的sign签名算法逆向工程实战,通过Frida脚本动态分析Java层和Native层的多层签名机制,揭示商业应用的加密协议设计。文章提供了完整的逆向工程方法论与工具链,帮助开发者深入理解移动应用安全防护体系,提升安全防御能力。

weixin_28622215的博客 919

Ext常用6大布局方式

只要是EXT.Container以及其之类都可以都可以使用Layout对其Items进行布局     简单说明最常用到的6种布局方式: 一.最简单的布局:FitLayout new Ext.Viewport({ layout:'fit', items:[oGrid] //oGrid是一个表格 });           注意: 1.使用Fit布局 items中只能有...

zhangxiaoben16的博客 429

提示词工程在机器翻译质量提升中的应用

Introduction to Prompt Engineering in Machine Translation Quality Improvement Keywords

AI天才研究院 1151

EXTJs 布局

FitLayout 自适应布局 FitLayout 是布局的基础类,对应面板布局配置项(layout)的名称为 fit,使用 fit 布局将使面板子元素自动充满容器,如果在当前容器中存在多个子面板则只有第一个会被显示。 Ext.onReady(function(){ //数据存储 var store = new Ext.data.SimpleStore( {

落日小屋 6519

Python控制LitePoint IQxel-MW 无线网络测试仪

由于项目需要进行WIFI和BT(蓝牙)的射频测试,所以需要开发一款支持WIFI/BT射频测试的工具。开发射频测试工具的话那肯定离不开仪表的控制。我们项目用的就Litepoint的IQxel-MW无线网络测试仪。这篇文章主要就是介绍一下如何控制仪表以及实现的过程!LitePoint是美国硅谷的一家仪器厂商,主要做一些无线通讯测试仪表,包括WIFI,BT(Bluetooth),LTE等等。

xgh1951的博客 1万+

[STC32G144K246入门第三步]驱动串口收发(接收不定长数据)

本文介绍了STC32G144K246单片机的串口功能配置与使用。该芯片具有8组独立USART,支持异步/同步模式,各串口可独立配置波特率并支持DMA传输。重点讲解了串口寄存器配置方法,包括引脚设置、波特率计算和中断处理。特别指出RX引脚需配置为开漏或准双向口以避免接收乱码。还介绍了通过定时器实现不定长数据接收的技术方案,并提供了完整的初始化代码和中断处理函数示例。文中包含串口时序图、寄存器配置表等实用参考信息,适合嵌入式开发者快速上手多串口应用开发。

sinat_58149788的博客 196

Extjs布局

今天我来总结一下extjs下面的各种布局,不仅是为了给自己做笔记,同时,也希望让刚刚接触extjs的朋友们快速的了解下,大神就不用看了。废话不多说,开始布局的讲解。 (以下代码都可以直接在javascript中直接复制使用,希望大家能够较好的使用学习。) 1.auto布局使用(默认布局) 就是自动排版 没有任何的设定 几乎很少使用到 Ext.onReady(functi...

aochan9664的博客 173

LLM评测框架Ragas:测试RAG的性能出现TimeoutError()的解决办法(Ragas+langchain+ollama)

无奈之下,自己找到了一个解决办法,在ragas支持的llm类库中加了一个如下的类,支持ollama、langchian_ollama使用ragas测试报错的问题。可以将如上的库放到你的ragas的系统库的llms目录下,然后修改__init__.py如下。最近用ragas测试rag的性能,发现老出现TimeoutError()的错误。这是一个临时的解决办法,具体等待官方给出最终的解决方案。后来发现官方也没有尽快支持的计划。然后就可以用如下代码进行一些验证。

Criss@陈磊 666

ExtJS 列布局以及table布局的应用

代码:/** * Created with IntelliJ IDEA. * User: Administrator * Date: 14-3-5 * Time: 上午10:23 * To change this template use File | Settings | File Templates. */ function capturePhotoWin(vid,lpn){

zengshuqin的专栏 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

ExtJs的html布局

<br /><br /><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><br /><%<br />String path = request.getContextPath();<br />String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";<br />%><br

hwq1987的专栏 3285

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ExtJs布局详解

Border布局__边界布局    这中布局是最常用的布局之一,看图                  border布局:border布局也称边界布局,他将页面分隔为west,east,south,north,center这五个部分,我们需要在其items中指定使用region参数为其子元素指定具体位置。    注意:north和south部分只能设置高度(h

qq_35197445的博客 368

Extjs中面板布局的应用

目标:       介绍Panel布局的各种类       Panel布局类在VS中的介绍 内容:       Panel布局类有10种:容器布局,自适应布局,折叠布局,卡片式布局,锚点布局,绝对位置布局,表单布局,列布局,表格布局,边框布局       1,Ext.layout.ContainerLayout 容器布局       提供容器作为布局的基础逻辑,通常会被扩展而不通过ne

1406

ExtJS的面板的布局

ExtJS的布局 ExtJS通过提供多种布局类来为面板提供支持,主要包括一下11种: 1.Auto自动布局 是默认的布局类型.它使用原始的HTML文档流来布局子元素,并把布局调用传递到子容器中,对应面板布局配置项(layout)的名称为Auto 2.Fit自适应布局 它使一个子元素充满容器,如果容器内有多个子面板则只有第一个会显示 3.Accordion折叠布局 该布局会包含多个子面

superman166的专栏 814

Extjs 页面布局

<br />ExtJs3 中的布局方法是采用 Ext.Container 类中的 Layout 属性去实现的,给 Layout 属性指定一个布局委托类去渲染容器内的子元素的展示。 <br />Ext.layout 包内提供了 14 种不同的布局类,专用布局类 2 种,通用的布局类 12 种: <br />layout 值 <br /> 布局类 <br /> 说明 <br /> <br />auto <br /> Ext.layout.ContainerLayout <br /> 所有布局类的基类, layo

traceofsun的专栏 2374

extjs显示html页面布局,extjs列布局 想用Extjs做一个左右布局的格式

extjs中 如何两列布局表单? 在线等//window 窗体 var addDeptWindow = new Ext.Window( { layout : 'fit',外围使用hbox 先分为两列。。extjs的column多列布局有什么办法可以不换行var form = new Ext.form.FormPanel({labelAlign:'right',title:'布局',labelWid...

weixin_39625747的博客 477

ExtJs布局大全

1.Fit 布局   在Fit 布局中,子元素将自动填满整个父容器。注意:在fit 布局下,对其子元素设置宽度是无效的。如果在fit 布局中放置了多个组件,则只会显示第一个子元素。在Fit 布局中,子元素将自动填满整个父容器。典型的案例就是当客户要求一个window 或panel 中放置一个GRID 组件,grid 组件的大小会随着父容器的大小改变而改变。 效果图: 示例代码

quryktcs的博客 642

ExtJS常用布局详解

ExtJS的容器组件都可以通过设置layout参数来选择布局改变显示风格, 它的有效值有: absolute:控制位置,accordion:手风琴布局,anchor:控制大小,border:边界式布局,card:卡片布局,column:列布局,fit:填充式布局,form:表单布局,table:表格式布局  一共9种,在这里简单总结一下 absolute:Absolute布局的目的

weiythi_01的专栏 936

[ExtJS]Layout 布局

在ExtJS里,布局形态用layout, 用法如下: { xtype:'容器控件', layout:'布局类型', items:[ { xtype:'子控件1' }, { xtype:'子控件2' } ] } 上述代码翻译成人话就是: 让某个容器...

拒绝成猿的程序员 1052
上一篇: ORACLE常用数值函数、转换函数、字符串函数
下一篇: Service Name和SID的区别
fineman2012
博客等级 码龄13年 2粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值