`
xiao_feng68
  • 浏览: 104339 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Ext-9种Layout的实例

阅读更多
extjs的容器组件都可以设置它的显示风格,它的有效值有 absolute, accordion, anchor, border, card, column, fit, form and table. 一共9种。简单总结一下,帮助记忆。

    •  absolute 顾名思义,在容器内部,根据指定的坐标定位显示
    •  accordion 这个是最容易记的,手风琴效果
    Java代码 
    1. Ext.OnReady(function(){  
    2. var panel=new Ext.Panel(//Ext.formPanel就是Panel中用了form布局  
    3.       {  
    4.        renderTo:'paneldiv',  
    5.        title:'容器组件',  
    6.        layout:'accordion',         
    7.        width:500,  
    8.        height:200,  
    9.        layoutConfig:{animate:false},  
    10.        items:[  
    11.         {title:'元素1',html:''},  
    12.         {title:'元素2',html:''},  
    13.         {title:'元素3',html:''},  
    14.         {title:'元素4',html:''}  
    15.        ]  
    16.       }  
    17.      );  
    18. }); 

    •  anchor 这个效果具体还不知道有什么用,就是知道注意一下
    1.容器内的组件要么指定宽度,要么在anchor中同时指定高/宽,
    2.anchor值通常只能为负值(指非百分比值),正值没有意义,
    3.anchor必须为字符串值
    Java代码 
    1. Ext.onReady(function() {  
    2.         var panel1 = new Ext.Panel({  
    3.             title: "panel1",  
    4.             height: 100,  
    5.             anchor: '-50',  
    6.             html: "高度等于100,宽度=容器宽度-50" 
    7.         });  
    8.  
    9.         var panel2 = new Ext.Panel({  
    10.             title: "panel2",  
    11.             height: 100,  
    12.             anchor: '50%',  
    13.             html: "高度等于100,宽度=容器宽度的50%" 
    14.  
    15.         });  
    16.  
    17.         var panel3 = new Ext.Panel({  
    18.             title: "panel3",  
    19.             anchor: '-10, -250',  
    20.             html: "宽度=容器宽度-10,高度=容器宽度-250" 
    21.  
    22.         });  
    23.  
    24.         var win = new Ext.Window({  
    25.             title: "Anchor Layout",  
    26.             height: 400,  
    27.             width: 400,  
    28.             plain: true,                      
    29.             layout: 'anchor',  
    30.             items: [panel1, panel2,panel3]              
    31.         });  
    32.         win.show();  
    33.     }); 

    •  border 将容器分为五个区域:east,south,west,north,center
    Java代码 
    1. Ext.onReady(function() {       
    2.  
    3.         var button = Ext.get('show-btn');  
    4.         var win;  
    5.           
    6.         button.on('click', function() {  
    7.  
    8.             //创建TabPanel  
    9.             var tabs = new Ext.TabPanel({  
    10.                 region: 'center', //border布局,将页面分成东,南,西,北,中五部分,这里表示TabPanel放在中间  
    11.                 margins: '3 3 3 0',  
    12.                 activeTab: 0,  
    13.                 defaults: {  
    14.                     autoScroll: true 
    15.                 },  
    16.                 items: [{  
    17.                     title: 'Bogus Tab',  
    18.                     html: "第一个Tab的内容." 
    19.                 }, {  
    20.                     title: 'Another Tab',  
    21.                     html: "我是另一个Tab" 
    22.                 }, {  
    23.                     title: 'Closable Tab',  
    24.                     html: "这是一个可以关闭的Tab",  
    25.                     closable: true 
    26. }]  
    27.                 });  
    28.  
    29.                 //定义一个Panel  
    30.                 var nav = new Ext.Panel({  
    31.                     title: 'Navigation',  
    32.                     region: 'west', //放在西边,即左侧  
    33.                     split: true,  
    34.                     width: 200,  
    35.                     collapsible: true, //允许伸缩  
    36.                     margins: '3 0 3 3',  
    37.                     cmargins: '3 3 3 3' 
    38.                 });  
    39.  
    40.                 //如果窗口第一次被打开时才创建  
    41.                 if (!win) {  
    42.                     win = new Ext.Window({  
    43.                         title: 'Layout Window',  
    44.                         closable: true,  
    45.                         width: 600,  
    46.                         height: 350,  
    47.                         border : false,  
    48.                         plain: true,  
    49.                         layout: 'border',  
    50.                         closeAction:'hide',  
    51.                         items: [nav, tabs]//把上面创建的panel和TabPanel放在window中,并采用border方式布局  
    52.                     });  
    53.                 }  
    54.                 win.show(button);  
    55.             });  
    56.         }); 

    •  card 像安装向导一样,一张一张显示
    Java代码 
    1. Ext.onReady(function() {  
    2.  
    3.         var i = 0;  
    4.  
    5.         var navHandler = function(direction) {  
    6.             if (direction == -1) {  
    7.                 i--;  
    8.                 if (i < 0) { i = 0; }  
    9.             }  
    10.  
    11.             if (direction == 1) {  
    12.                 i++;  
    13.                 if (i > 2) { i = 2; return false; }  
    14.             }  
    15.  
    16.  
    17.             var btnNext = Ext.get("move-next").dom.document.getElementsByTagName("button")[1];  
    18.             var btnBack = Ext.get("move-next").dom.document.getElementsByTagName("button")[0];  
    19.  
    20.             if (i == 0) {  
    21.                 btnBack.disabled = true;  
    22.             }  
    23.             else {  
    24.                 btnBack.disabled = false;  
    25.             }  
    26.  
    27.             if (i == 2) {  
    28.                 btnNext.value = "完成";  
    29.                 btnNext.disabled = true;  
    30.             }  
    31.             else {  
    32.                 btnNext.value = "下一步";  
    33.                 btnNext.disabled = false;  
    34.             }  
    35.  
    36.             card.getLayout().setActiveItem(i);  
    37.  
    38.         };  
    39.  
    40.  
    41.         var card = new Ext.Panel({  
    42.             width: 200,  
    43.             height: 200,  
    44.             title: '注册向导',  
    45.             layout: 'card',  
    46.             activeItem: 0, // make sure the active item is set on the container config!  
    47.             bodyStyle: 'padding:15px',  
    48.             defaults: {  
    49.                 border: false 
    50.             },  
    51.             bbar: [  
    52.                 {  
    53.                     id: 'move-prev',  
    54.                     text: '上一步',  
    55.                     handler: navHandler.createDelegate(this, [-1])                      
    56.                 },  
    57.                 '->',  
    58.                 {  
    59.                     id: 'move-next',  
    60.                     text: '下一步',  
    61.                     handler: navHandler.createDelegate(this, [1])  
    62.                 }  
    63.             ],  
    64.  
    65.             items: [{  
    66.                 id: 'card-0',  
    67.                 html: '<h1>欢迎来到注册向导!</h1><p>Step 1 of 3</p>' 
    68.             }, {  
    69.                 id: 'card-1',  
    70.                 html: '<h1>请填写注册资料!</h1><p>Step 2 of 3</p>' 
    71.             }, {  
    72.                 id: 'card-2',  
    73.                 html: '<h1>注册成功!</h1><p>Step 3 of 3 - Complete</p>' 
    74. }],  
    75.  
    76.                 renderTo: "container" 
    77.             });  
    78.  
    79.  
    80.  
    81.         }); 

    •  column 把整个容器看成一列,然后向容器放入子元素时
    Java代码 
    1. Ext.onReady(function() {  
    2.         var win = new Ext.Window({  
    3.             title: "Column Layout",  
    4.             height: 300,  
    5.             width: 400,  
    6.             plain: true,  
    7.             layout: 'column',  
    8.             items: [{  
    9.                 title:"width=50%",  
    10.                 columnWidth:0.5,  
    11.                 html:"width=(容器宽度-容器内其它组件固定宽度)*50%",  
    12.                 height:200 
    13.             },  
    14.             {  
    15.                 title:"width=250px",  
    16.                 width: 200,  
    17.                 height:100,  
    18.                 html:"固定宽度为250px" 
    19.             }              
    20.             ]  
    21.         });  
    22.         win.show();  
    23.     }); 

    •  fit 一个子元素将充满整个容器(如果多个子元素则只有一个元素充满整个容器)
    Java代码 
    1. Ext.OnReady(function(){  
    2. var panel=new Ext.Panel(  
    3.       {  
    4.        renderTo:'paneldiv',  
    5.        title:'容器组件',  
    6.        layout:'fit',  
    7.        width:500,  
    8.        height:100,  
    9.        items:[  
    10.         {title:'子元素1'},  
    11.         {title:'子元素2'},  
    12.         {title:'子元素3'},  
    13.         {title:'子元素4'},  
    14.         {title:'子元素5'}  
    15.        ]  
    16.       }  
    17.      );  
    18. }); 
    •  form 是一种专门用于管理表单中输入字段的布局
    Java代码 
    1. Ext.onReady(function() {  
    2.         var win = new Ext.Window({  
    3.             title: "form Layout",  
    4.             height: 150,  
    5.             width: 230,  
    6.             plain: true,  
    7.             bodyStyle: 'padding:15px',  
    8.             items:   
    9.             {  
    10.                 xtype: "form",  
    11.                 labelWidth: 30,  
    12.                 defaultType: "textfield",  
    13.                 frame:true,  
    14.                 items:   
    15.                 [  
    16.                     {  
    17.                         fieldLabel:"姓名",  
    18.                         name:"username",  
    19.                         allowBlank:false 
    20.                     },  
    21.                     {  
    22.                         fieldLabel:"呢称",  
    23.                         name:"nickname" 
    24.                     },  
    25.                     {  
    26.                         fieldLabel: "生日",  
    27.                         xtype:'datefield',  
    28.                         name: "birthday",  
    29.                         width:127 
    30.                     }  
    31.                 ]  
    32.             }  
    33.         });  
    34.         win.show();  
    35.     }); 

    •  table 按照普通表格的方法布局子元素,用layoutConfig:{columns:3},//将父容器分成3列
    Java代码 
    1. Ext.onReady(function(){  
    2. var panel=new Ext.Panel(  
    3.       {  
    4.        renderTo:'paneldiv',  
    5.        title:'容器组件',  
    6.        layout:'table',         
    7.        width:500,  
    8.        height:200,  
    9.        layoutConfig:{columns:3},//将父容器分成3列  
    10.        items:[  
    11.         {title:'元素1',html:'ssssssssss',rowspan:2,height:100},  
    12.         {title:'元素2',html:'dfffsddsdfsdf',colspan:2},  
    13.         {title:'元素3',html:'sdfsdfsdf'},  
    14.         {title:'元素4',html:''}  
    15.        ]  
    16.       }  
    17.      );  
    18. }); 

.

分享到:
评论

相关推荐

    ExtJs常用布局--layout详解实例代码

    ExtJs常用布局--layout详解实例代码: ExtJs常见的布局方式有:border、form、absolute、column、accordion、table、fit、card、anchor 另外,不常见的布局有:tab、vbox、hbox 具体使用方法可见该文件的案例代码。 ...

    ext-base.js

    2. **类系统**:EXT使用面向对象的编程方式,"ext-base.js"中包含了类的创建、继承和实例化等机制,使得开发者可以方便地创建自定义组件。 3. **事件系统**:EXT的事件模型是其交互性的重要组成部分,"ext-base.js...

    搭建简单的EXT-GWT(GXT)的开发环境(四)ext-gwt(gxt)结合google map第三版开发

    EXT-GWT(GXT)是Sencha公司推出的一款基于Google Web Toolkit(GWT)的开源JavaScript库,用于构建富客户端的Web应用。本教程将详细介绍如何搭建EXT-GWT(GXT)的开发环境,并结合Google Maps API第三版进行集成...

    EXT-js-中文手册

    - **布局管理**:EXT提供了多种布局管理方式,如Border Layout、Fit Layout等,便于灵活地组织页面元素。 - **示例应用**:通过具体示例演示如何应用不同类型的布局,实现页面设计目标。 #### 14. Grid - **数据...

    ext实例 ext操作步骤

    **EXT基本表格(GridPanel)介绍**:EXT的表格组件,即`Ext.grid.GridPanel`,是一种功能强大的数据展示工具。它可以与服务器端进行数据交互,支持排序、筛选、分页等功能。开发者可以自定义列头、行样式,甚至实现...

    Ext-window属性

    在支持一次仅显示一个子组件的布局中,如`Ext.layout.Accordion`、`Ext.layout.CardLayout`和`Ext.layout.FitLayout`,这个属性特别有用。 2. **allowDomMove**: 默认值为`true`,表示在组件渲染过程中允许移动DOM...

    Ext 添加功能form表单实例

    根据给定的信息,本文将详细解释“Ext 添加功能form表单实例”的知识点,这主要针对Ext初学者。本文会从创建表单、字段定义、验证规则以及提交逻辑等方面进行深入探讨。 ### Ext 添加功能form表单实例 #### 表单...

    EXT 3.2.1 Demo 最全实例

    1. **布局管理**:EXT JS提供多种布局方式,如表单布局(Form Layout)、流式布局(Fluid Layout)、绝对布局(Absolute Layout)、列布局(Column Layout)等,这些布局在创建复杂的网页布局时非常有用。...

    EXT dojochina Ext类实例属性.rar

    EXT dojochina Ext类实例属性是一个关于EXT框架在JavaScript中的使用的主题,主要涉及EXT库中的类和实例属性。EXT是一个强大的JavaScript库,用于构建富客户端应用程序,它提供了丰富的组件和布局管理,使得Web应用...

    ext4 表格分页实例代码

    在IT行业中,EXT4是一种广泛使用的文件系统,尤其在Linux操作系统中。它的全称是Fourth Extended File System,是EXT3的升级版,旨在提供更好的性能、稳定性和更大的存储容量。EXT4引入了许多新特性,例如预分配、...

    EXT入门详解.pdf

    EXT,全称Ext JS,是一种基于JavaScript的前端框架,最初是作为Yahoo! UI(YUI)库的一个扩展而诞生的,但后来发展成为一个独立的项目,不再依赖于YUI。EXT因其适合企业级开发,能够实现复杂的Layout布局,以及与...

    Ext table布局实例 formpanel的table布局

    Ext的formpanel table布局实例,有效解决了页面resize时列宽不跟随改变的问题,即列宽的自适应宽度

    Ext4.2 MVC 实例 源码

    Ext4.2 MVC 实例 源码 grid tree layout。。。

    java ajax ext实例

    9. **EXT.layout**:布局管理器是EXT.js中非常重要的一部分,它负责管理组件的排列和大小调整,确保组件在不同屏幕尺寸下都能正确显示。 10. **Ajax生命周期**:理解Ajax请求的生命周期至关重要,包括请求的初始化...

    EXT中文API

    4. `examples` 文件夹:包含各种示例和Demo,这些实例演示了EXT库的不同组件和功能如何使用,是学习EXT的好材料。 5. `docs` 文件夹:可能包含EXT的API文档,让你可以查阅每个类、方法和属性的详细信息。 6. `src` ...

    extjs的的初步开发步骤

    每个portlet可以有多个子项,例如`待办事宜列表`和`系统通知`,它们通过`title`指定标题,并使用`layout: 'fit'`来适应portlet的大小。`tools`属性允许添加工具栏图标,而`items`则指定了portlet内的具体内容,如`...

    Ext级联菜单实例

    子菜单可以是另一个`Ext.menu.Menu`实例,或者是一个包含更多菜单项的数组。如果子菜单是一个数组,那么数组中的每个元素同样是一个菜单项的配置对象。 3. **添加事件监听器**: 为了让菜单项之间能够级联,你需要...

Global site tag (gtag.js) - Google Analytics