`
hz_chenwenbiao
  • 浏览: 1007793 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ExtJS学习笔记

阅读更多

1 用column布局时要注意啦,不用像table布局方式那样要加上layoutConfig : {columns : 4 }来设置列的数目,而它是当外而设置了column布局后,那么它后的items内的每一个item都成一列,换行,那外面可以放上form布局,form布局默认每个item会自成一行,下面是一个大侠的例程:

 

Ext.onReady(function(){   
  
       
            Ext.QuickTips.init();   
  
    // turn on validation errors beside the field globally   
    Ext.form.Field.prototype.msgTarget = 'side';   
  
    var bd = Ext.getBody();   
  
var detailForm = new Ext.FormPanel({   
        id:"detail",   
        layout:"form",   
        labelWidth: 60,   
        labelAlign:"right",   
        border:false,   
        frame:true,   
        width: 600,//宽度设置要合理,如果FormPanel的宽度小于控件的宽度,column布局时控件不能正常显示   
        height:400,   
//      autoHeight:true,   
//      defaultType: 'textfield',//column布局时不能设置该属性,否则不能正常显示   
        items: [{//第一行   
            layout:"column",   
            items:[{   
                columnWidth:.3,//第一列   
                layout:"form",   
                items:[{   
                    xtype:"textfield",   
                    fieldLabel: '合同编号',   
                    name: 'contractId',   
                    width:100   
                    }]   
            },{   
                columnWidth:.3,//第二列   
                layout:"form",   
                items:[{   
                    xtype:"textfield",   
                    fieldLabel: '合同名称',   
                    name: 'contractId1',   
                    width:100   
                    }]   
            },{   
                columnWidth:.3,//第三列   
                layout:"form",   
                items:[{   
                    xtype:"textfield",   
                    fieldLabel: '合同',   
                    name: 'contractId2',   
                    width:100   
                    }]   
            }]},//第一行结束   
            {//第二行   
            layout:"column",   
            items:[{   
                columnWidth:.3,//第一列   
                layout:"form",   
                items:[{   
                    xtype:"textfield",   
                    fieldLabel: '合同编号',   
                    name: 'contractId',   
                    width:100   
                    }]   
            },{   
                columnWidth:.3,//第二列   
                layout:"form",   
                items:[{   
                    xtype:"textfield",   
                    fieldLabel: '合同名称',   
                    name: 'contractId1',   
                    width:100   
                    }]   
            },{   
                columnWidth:.3,//第三列   
                layout:"form",   
                items:[{   
                    xtype:"textfield",   
                    fieldLabel: '合同',   
                    name: 'contractId2',   
                    width:100   
                    }]   
            }]},//第二行结束   
            {//第三行   
            layout:"column",   
            items:[{   
                columnWidth:.3,//第一列   
                layout:"form",   
                items:[{   
                    xtype:"textfield",   
                    fieldLabel: '合同编号',   
                    name: 'contractId',   
                    width:100   
                    }]   
            },{   
                columnWidth:.3,//第二列   
                layout:"form",   
                items:[{   
                    xtype:"textfield",   
                    fieldLabel: '合同名称',   
                    name: 'contractId1',   
                    width:100   
                    }]   
            },{   
                columnWidth:.3,//第三列   
                layout:"form",   
                items:[{   
                    xtype:"textfield",   
                    fieldLabel: '合同',   
                    name: 'contractId2',   
                    width:100   
                    }]   
            }]}//第三行结束   
           ]   
      });    
  
  
  
var win =  new  Ext.Window(   
               {   
                id:"window",   
                title: " 合同信息 " ,   
                layout: 'border',   
                width:600,   
                height:500,   
                closeAction:'hide',   
                plain: true,   
                   
                items:[new Ext.TabPanel({   
                        region: 'center',   
                        deferredRender: false,   
//                      layoutOnTabChange:true,//在TabPanel中采用column布局时,有时需要设置该属性   
                        activeTab: 0, //活动的tab索引   
                        items: [{   
                            //contentEl: 'tab1',   
                            title: '合同明细',   
                            closable: false, //关闭项   
                            autoScroll: false, //是否自动显示滚动条   
                            layout:'fit',   
                            collapsible: true,   
                            split:true,   
                            margins:'0 0 0 0',   
                            items:[detailForm]   
                        },{   
                            //contentEl: 'tab2',   
                            title: '规格明细',   
                            closable: false, //关闭项   
                            autoScroll: false, //是否自动显示滚动条   
                            layout:'fit',   
                            collapsible: true,   
                            split:true,   
                            margins:'0 0 0 0'  
                        }]   
                    })],   
                   
                buttons: [{   
                    text:'Submit',   
                    disabled:true  
                },{   
                    text: 'Close',   
                    handler: function(){   
                        win.hide();   
                       // detailForm.destroy();   
                    }   
                }]   
  
      });       
      
    //显示窗口   
    win.show();   
  
});  

 

2 ExtJS的layout中,有一个是'form',这个layout有几点需要注意。

      (1):ExtJs中的textfield(Ext.form.TextField)的config中有一个叫fieldLabel 的,用于显示textbox前面的文字。这段文字要能显示,一定要使用form的layout,否则不会显示。

      (2):在使用form的layout之后,有效范围里的所有items将是默认的纵向格局,即使你将2个layout为form的panel放在一个layout为column的panel里,两个form依然是上下排列。

      (3)form与column布局的label有时没显示,可能是column的作用域还存在,所以textfield的标签无法显示。可参考下面的程序:

Ext.onReady(function(){
		var form = new Ext.form.FormPanel({
			title:'通过布局嵌套实现表单横排',
			labelSeparator :':',           //分隔符
			labelWidth : 50,              //标签宽度
			bodyStyle:'padding:5 5 5 5',     //表单边距
			frame : false,
			height:150,
			width:450,
			applyTo :'form',
			items:[
			{//第一个面板
				xtype : 'panel',
				layout : 'column',              //嵌套列布局
				border : false,                 //不显示边框
				defaults : {                   //应用到每一个子元素上的配置
					border : false,            //不显示边框
					layout : 'form'            //在列布局中嵌套form布局
				},
				items : [
					{
						columnWidth : .5,          //列宽
						items:{//将它去掉的时候,那标签就无法显示,因为这个items受的是column的作用,而我们加上items会就会用上面设置了的form布局,我也不知道它为什么会是这样的。
							xtype:"textfield",	
							name:"password",
							fieldLabel:"姓名"
						}
					},
					{
						columnWidth : .5,          //列宽
						labelSeparator :':',       //分隔符
						items :[ {
							xtype : 'radio',
							name : 'sex',        //名字相同的单选框会作为一组
							fieldLabel:'性别',
							boxLabel : '男'
						}
						]
					},
					{
							xtype : 'radio',
							name : 'sex',     //名字相同的单选框会作为一组
							hideLabel:true,   //横排后隐藏标签
							boxLabel : '女'
					}
				]
			}
			]
		})
	});

 

 

3 items内的item的布局、labelWidth及默认设置等都是有items同一级,并在它上面的才对它直接影响:

                defaults:{xtype:"textfield",width:350},
                layout:"form",
	labelWidth:55,
	frame:true,
	items:[
	{
		fieldLabel:"身份证号",
		name:"idetity"
	},
	{
		fieldLabel:"具体地址",
		name:"address"
	}]

 4 有时发布的项目访问时,没有效果,有可能是自己的文件的命名与EXTJS里的命名冲突了,导致没有显示。我用tree作页面的目录,就搞了半天也没有找出哪里出现问题,自己建的树目录就是怎样也出不来,后来才想到应该是名字的原因,改了就可以看到自己做的树了,还有可能是出现加载不能自己写的js的原因在html里没有加入字符编码方式,要切记js是以Union Code的方式,因此可以在html的head标签里加入<meta http-equiv="content-type" content="text/html; charset=UTF-8">以支持js里的中文,这也是要注意的地方。

分享到:
评论

相关推荐

    ExtJS学习笔记.doc

    ExtJS学习笔记.docExtJS学习笔记.docExtJS学习笔记.docExtJS学习笔记.doc

    ExtJs简明教程+Extjs学习笔记

    ExtJs简明教程+Extjs学习笔记,来源网络,免费奉送,我讨厌需要资源分~

    EXTJS学习笔记

    ### EXTJS学习笔记 #### 一、EXTJS基础概念与命名空间管理 **EXTJS** 是一款基于JavaScript的开源框架,主要用于开发复杂的企业级Web应用。它的设计目标是提高前端开发效率并简化复杂的用户界面(UI)开发过程。在...

    Extjs学习笔记

    ExtJS 学习笔记 ExtJS 是一个功能强大且流行的 JavaScript 库,用于构建富互联网应用程序(RIA)。本文将通过一个简单的示例,介绍如何使用 ExtJS 构建一个 Hello World 网页,并且详细讲解 Ext.MessageBox 的使用...

    语言程序设计资料:ExtJs学习笔记-2积分.doc

    语言程序设计资料:ExtJs学习笔记-2积分.doc

    Extjs学习笔记之九 数据模型(上)

    ### Extjs 学习笔记之九:数据模型(上) #### 概述 本文将深入探讨Extjs框架中至关重要的组成部分——数据模型。数据模型在Extjs中扮演着核心角色,它不仅为开发者提供了强大的数据处理能力,还极大地简化了前端与...

    老师整理的extjs学习笔记

    ### ExtJS 学习笔记概览 #### 一、ExtJS 入门 **1.1 ExtJS 构成及如何引用** ExtJS 是一款基于 JavaScript 的开源框架,专为 Web 应用程序的前端界面设计。其核心优势在于提供了一套丰富的 UI 组件和强大的数据...

    ExtJs学习笔记 ExtJs Api

    适合ExtJs开发人员extjs技术上手以及深入

    Extjs 5 学习笔记

    ### Extjs 5 学习笔记之 SenchaCmd 深入解析 #### 一、SenchaCmd 的简介 SenchaCmd 是一个跨平台的命令行工具,它为基于 ExtJS 和 Sencha Touch 应用程序的开发周期提供了全面的支持。从创建应用程序的基础结构到...

    界面框架extjs学习笔记

    EXTJS in Action 是一本专为学习EXTJS编写的书籍,但这里我们主要关注学习笔记中的关键知识点。 首先,EXTJS的目录结构非常重要,因为它包含了所有必要的资源和源码: 1. `adapter`:这部分包含了适配器,用于将...

    extjs学习笔记

    ### extjs学习笔记知识点梳理 #### 一、Ext.MessageBox 方法详解 Ext.MessageBox 是 ExtJS 库中的一个重要组件,用于向用户展示消息对话框。它包含了多种类型的消息对话框,每种对话框都有其特定用途。 - **Ext....

    ExtJs学习笔记,共30讲

    这个学习笔记涵盖了从基础到高级的多个主题,帮助读者深入理解ExtJs的核心概念和技术。以下是一些关键知识点的详细说明: 1. **ExtJs 结构树**:这部分内容可能涉及ExtJs如何构建可自定义的用户界面组件树,包括...

    extjs 学习笔记(三) 最基本的grid

    在本篇学习笔记中,我们将深入探讨EXTJS中最基本的Grid的构建和配置。 首先,EXTJS的Grid由多个组件构成,其中最重要的是`ColumnModel`,它负责定义Grid中的列属性。在示例代码中,我们创建了一个`ColumnModel`对象...

    Extjs学习笔记有用

    ExtJS 是一个强大的JavaScript框架,主要用于构建富客户端Web应用程序。...学习ExtJS可以帮助开发者快速构建功能丰富的、交互性强的Web应用。通过深入理解和实践,可以提升开发效率,创建出符合现代Web标准的用户界面。

    Extjs学习笔记之七 布局

    以上介绍的只是Extjs布局管理中的一小部分,Extjs官网提供了丰富的例子和详细的文档,这是学习Extjs布局的最佳资源。通过官网的例子,可以直观地看到不同布局类型的效果和配置方法,极大地便利了开发者的布局实践和...

Global site tag (gtag.js) - Google Analytics