zoukankan      html  css  js  c++  java
  • 【ExtJS】FormPanel 布局(一)


    准备工作,布置一个最简单的Form,共5个组件,都为textfield。

     1 Ext.onReady(function(){
     2     Ext.create('Ext.form.Panel', {
     3          500,
     4         title: 'Layout',
     5      renderTo : 'form',
     6         items: [{
     7             xtype : 'textfield',
     8             fieldLabel : 'edit1',
     9             name : 'edit1',
    10         },{
    11             xtype : 'textfield',
    12             fieldLabel : 'edit2',
    13             name : 'edit1',
    14         },{
    15             xtype : 'textfield',
    16             fieldLabel : 'edit3',
    17             name : 'edit1',
    18         },{
    19             xtype : 'textfield',
    20             fieldLabel : 'edit4',
    21             name : 'edit1',
    22         },{
    23             xtype : 'textfield',
    24             fieldLabel : 'edit5',
    25             name : 'edit1',
    26         }],
    27      buttons : [{
    28        text : 'upDate',
    29        handler : function(){
    30          //do something...
    31        }
    32      }] 
    33     });
    34 })

    效果: 


    1、Absolute绝对布局:

      使用标准x,y属性进行x/y坐标定位。

     1 Ext.create('Ext.form.Panel', {
     2   title: 'Absolute',
     3   renderTo: 'absolute',
     4    500,
     5   height: 250,
     6   layout: 'absolute',
     7   items: [{
     8      xtype : 'textfield',
     9     fieldLabel : 'edit1',
    10      width : 100,
    11      name : 'edit1',
    12      x : 10,
    13       y : 10
    14    },{
    15      xtype : 'textfield',
    16      fieldLabel : 'edit2',
    17      width : 160,
    18      name : 'edit1',
    19      x : 20,
    20      y : 40
    21    },{
    22      xtype : 'textfield',
    23      fieldLabel : 'edit3',
    24      width : 60,
    25      name : 'edit1',
    26       x : 30,
    27      y : 70
    28    },{
    29       xtype : 'textfield',
    30       fieldLabel : 'edit4',
    31       width : 190,
    32        name : 'edit1',
    33       x : 40,
    34       y : 100
    35   },{
    36     xtype : 'textfield',
    37     fieldLabel : 'edit5',
    38     width : 220,
    39     name : 'edit1',
    40     x : 50,
    41     y : 130
    42   }],
    43   buttons : [{
    44     text : 'upDate',
    45     handler : function() {
    46           //do something...
    47     }
    48   }]   
    49 });

    效果:

    ps:在调试的时候遇到一个情况,如果仅设置宽width而不设置高height的话,会出现“Layout run failed ”错误。不过若是仅设置高而不设置宽,则Form宽填充整个页面,而不会出现错误。


    2、accordion手风琴式布局:

    注意:只有 Ext的各种Panel和Ext.panel.Panel的子类可以用于这种布局的容器中.

    诸如Header、Table、Tool等,子类有:

      Ext.container.ButtonGroup
      Ext.form.Panel
      Ext.menu.Menu
      Ext.panel.Table
      Ext.tab.Panel
      Ext.tip.Tip
      Ext.window.Window
     1 Ext.create('Ext.form.Panel', {
     2      500,
     3     height: 250,
     4     title: 'Accordion',
     5     renderTo: 'accordion',
     6     layout : 'accordion',
     7     items: [{
     8         title: 'Panel1',
     9         html: 'Panel content!'
    10     },{
    11         itle: 'Panel2',
    12         html: 'Panel content!'
    13     },{
    14         title: 'Panel3',
    15         html: 'Panel content!'
    16     }],
    17     buttons : [{
    18        text : 'open Panel3',
    19       handler : function() {
    20           Ext.getCmp('Panel3').expand(true);
    21       }
    22     }]   
    23 });                    

    效果:


    3、Anchor式布局:

    根据父控件宽高,以固定百分比或者固定偏移量来决定子控件的尺寸。

     1 Ext.create('Ext.form.Panel',{
     2      500,
     3     height: 400,
     4     title: 'Anchor',
     5     renderTo: 'anchor',
     6     layout: 'anchor',
     7     buttonAlign : 'center',
     8     items: [{
     9         xtype: 'panel',
    10           title: '75% Width and 20% Height',
    11           anchor: '75% 20%'
    12         },{
    13          xtype: 'panel',
    14           title: 'Offset -300 Width and -200 Height',
    15             anchor: '-300 -200'     
    16         },{
    17             xtype: 'panel',
    18             title: 'Offset -200 Width and 40% Height',
    19             anchor: '-250 40%'
    20         }],
    21     buttons : [{
    22         text : 'upDate',
    23         handler : function() {
    24             //do something..
    25         }
    26     }]  
    27 });                

    效果:


    4、Auto布局:

     1 Ext.create('Ext.form.Panel',{
     2      500,
     3     height: 400,
     4     title: 'Auto',
     5     renderTo: 'auto',
     6     layout: 'auto',
     7     buttonAlign : 'center',
     8     margin: '50 150 50 50',
     9     border: true,
    10     items: [{
    11          type: 'panel',
    12          title: 'AutoLayout1',
    13          margin: '10 10 10 10',
    14          border: true,            
    15     },{
    16         xtype: 'panel',
    17     title: 'AutoLayout2',
    18     border: true,
    19     margin: '10 10 10 10'
    20     }],
    21     buttons : [{
    22         text : 'upDate',
    23         handler : function() {
    24             //do something..
    25     }
    26     }]  
    27 });          

    效果:



    一些常用配置与问题:

    1、border 边框设置

      默认为false,边框不可见。true为边框可见。

    2、margin 组件页边

      margin 可以是一个数值适用于所有边 或者它可以是每个样式的CSS样式规范, 例如: '10 5 3 10'。

    3、buttonAlign 按钮Button位置

      指定Panel中按钮的位置。可配置的值有'right', 'left' 和 'center'(对于所有的buttons/fbar默认为'right',对于toolbar 则默认为'left')。

    4、handler : function(){}

      按钮点击事件的触发。

    5、关于标签fieldLabel与title

      title为要现实的标签文本。

      fieldLabel为域标签。它被附加了labelSeparator, 其位置和大小被labelAlign、 labelWidth和labelPad配置确认。

        labelSeparator: 插入到fieldLabel后面的字符。默认为":" 

        labelAlign: 控制fieldLabel的位置和对齐方式。有效值为:

           "left" (默认) - 标签位于域的左边,其文本左对齐。其宽度由labelWidth配置确定。

           "top" - 标签位于域的顶端。

           "right" - 标签位于域的右边,其文本右对齐。其宽度由labelWidth配置确定。

        labelWidth: fieldLabel以像素为单位的宽度。只适用于 labelAlign设置了“left”或“right”。默认为"100"。

        labelPad: fieldLabel和输入域之间的像素空间的合计。默认为"5"。

  • 相关阅读:
    javascript关于面向对象的总结
    实现ICollection
    sqlbishi
    什么叫IOC(编程术语
    ASP.Net绘制柱状图和曲线图示例
    Web.config配置知识
    asp.net的生成曲线图的过程简单实例
    asp.net与.net编程常用函数与方法汇总
    C# 值类型与类的不同
    一步一步学Linq to sql(一):预备知识
  • 原文地址:https://www.cnblogs.com/linxiong945/p/3944277.html
Copyright © 2011-2022 走看看