Extjs

一切的技术只是为了解决现实的问题,
任何能够帮助我们有效达到目的技术都是值得学习的。
 
现在让我们一起进入extjs的学习吧!
 
(What?Why?How?)

1、什么是extjs(What?)

(1)extjs是一种主要用于创建前段用户界面,是一个基本与后台技术无关的前段ajax框架,可以用在.net,java,php等各种开发语言开发的应用中。
 
(2)extjs最开始是基于YUI技术,由开发人员JackSlocum(杰克.斯洛克姆)开发,UI组件模型和开发理念来自于Yahoo组件库YUI和java平台上是Swing。
 
 
(3)最新版为Extjs4.0。2010年6月15日,ExtJS项目已经与触摸屏代码库项目jQTouch和SVG处理库Raphael合并,由Sencha组织维护,此举是ExtJS为了应对HTML5等新趋势,加强丰富图形和触摸屏功能的重要举措。
 
 
(4)Exjt收费情况
 
 
 
 

2、为什么要学习extjs

 Ajax主流框架与ExtJS
    JQuery、 Prototype和YUI都属于非常核心的JS库。

ExtJS的定位是RIA,和Prototype、jQuery等类库的定位不同。使用ExtJS做开发,就是意味着以客户端开发为主,不然就不叫RIA框架了,而Prototype、jQuery等只是辅助性的客户端框架,和ExtJS不在同一条起跑先上。

 
 

 

 
(1)功能丰富,待会儿展示
 
(2)界面美观,ext的表格控件在各个ajax框架高居榜首
 
(3)提供最为完整的整合开发平台,绝对可以单独使用。
 
一系列非常简单易用的控件及组件,就能实现各种丰富多彩的UI的开发
 

3、怎样学习extjs

 
(1)理解Html DOM、Ext Element及Component
  • demo1
  • /**********************************************/
  • /*Layout*/
Ext.onReady( function(){

     var border = Ext.create( 'Ext.window.Window', {
        width : 700,
        height : 500,
        title : 'Border Layout',
        layout : 'border',
        defaults :{
             xtype : 'panel'
        },
        items : [{
            title : 'North Region is resizable',
            region : 'north',     
            height : 100,
            split : true         
        },{
            title : 'South Region is resizable',
            region : 'south',    
            height : 100,
            split : true       
        },{
            title : 'West Region is collapsible',
            region : 'west',
            width : 200,
            collapsible : true,   
            layout : 'fit'
        },{
            title : 'East Region is collapsible',
            region : 'east',
            width : 200,
            collapsible : true,  
            layout : 'fit'
        },{
            title : 'Center Region',
            region : 'center',    
            layout : 'fit'
        }]
    });
    border.show();
});
 
 
  • demo2  
  • /**********************************************/
  • /*Store*/
 
Ext.regModel( 'Blog', {
            fields : [
                {name : 'id', type : 'int'},
                {name : 'name', type : 'string'},
                {name : 'url', type : 'string'}
            ]
        });

     Ext.onReady( function() {  

          var store = new Ext.data.Store({
                model : 'Blog',
                proxy : {
                    type : 'ajax',
                    url : 'blogs.json',
                    reader : {
                        type : 'json',
                        root : 'blogs'
                    }
                }
            });         

         //Loads the store, which calls our callback function when it has loaded
         //There are 4 records in the JSON response, so this should alert 4:
        store.load( function(records) {
            Ext.MessageBox.alert( 'Testing Ext 4 Models', "Loaded " + store.getCount() + " records");
        });


     });
 
 
 
 
/*********************************************************/
/*Demo3*/
/*form*/
Ext.require([
     'Ext.form.Panel',
     'Ext.layout.container.Anchor'
]);

Ext.onReady( function(){

     var hboxForm = Ext.create( 'Ext.form.Panel', {

        frame :true,
        title : 'Form - Ext 4',
        bodyStyle : 'padding:5px 5px 0',
        width : 600,
        renderTo : 'ext4-form',
        fieldDefaults : {
            labelAlign : 'top',
            msgTarget : 'side'
        },
        defaults : {
            border : false,
            xtype : 'panel',
            flex : 1,
            layout : 'anchor'
        },

        layout : 'hbox',
        items : [{
            items : [{
                xtype : 'textfield',
                fieldLabel : 'First Name',
                anchor : '-10',
                name : 'first',
                allowBlank :false
            }, {
                xtype : 'textfield',
                fieldLabel : 'Phone Number',
                anchor : '-10',
                name : 'phone',
                allowBlank :false
            }]
        }, {
            items : [{
                xtype : 'textfield',
                fieldLabel : 'Last Name',
                anchor : '100%',
                name : 'last',
                allowBlank :false
            },{
                xtype : 'textfield',
                fieldLabel : 'Email',
                anchor : '100%',
                name : 'email',
                vtype : 'email'
            }]
        }],

        buttons : [{
            text : 'Save'
        },{
            text : 'Cancel'
        }]
    });
});
 
 
 
/*****************************************************************************************/
/*demo4 chart*/
/*报表功能*/

Ext.require( 'Ext.chart.*');
Ext.require([ 'Ext.Window', 'Ext.fx.target.Sprite', 'Ext.layout.container.Fit']);

Ext.onReady( function () {

     var store = Ext.create( 'Ext.data.ArrayStore', {
        fields : [
           {name : 'os'},
           {name : 'visits', type : 'int'}
        ],
        data : [
           [ 'Windows', '21548'],
           [ 'Linux', '19864'],
           [ 'Mac OS', '18459'],
           [ 'Android', '5762'],
           [ 'iOS', '5635']
        ]
    });

     var barChart = Ext.create( 'Ext.chart.Chart', {
        animate : true,
        shadow : true,
        store : store,
        style : 'background:#fff',

        axes : [{
            type : 'Numeric',
            position : 'bottom',
            fields : [ 'visits'],
            title : 'Number of Visits',
            grid : true,
            minimum : 0
        }, {
            type : 'Category',
            position : 'left',
            fields : [ 'os'],
            title : 'Operational System'
        }],

        series : [{
             //column:true,
            type : 'bar',
            axis : 'bottom',
            highlight : true,
            tips : {
              trackMouse : true,
              width : 140,
              height : 48,
              renderer : function(storeItem, item) {
                 this.setTitle(storeItem.get( 'os') + ': ' + storeItem.get( 'visits') + ' visits');
              }
            },
            xField : 'os',
            yField : 'visits'
        }]
    });

    Ext.create( 'Ext.window.Window', {
        width : 600,
        height : 300,
        hidden : false,
        maximizable : true,
        title : 'Bar Chart',
        renderTo : Ext.getBody(),
        layout : 'fit',
        items : [barChart]
    });
});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(2)熟悉ext组件体系

组件大致可分成三大类,即基本组件、工具栏组件、表单元素组件。
基本组件有


 
 
(3)掌握核心控件 TreePanel,GridPanel,Form
 
 
/*Demo5 grid*/
 
 
 
/*Demo6 form*/
 
 
 
 
/*demo7 TreePanel*/
 
 
 
 
/*Extjs 主题变换*/
/*Demo8*/
 
 
/******************************/ 
/*Extjs MVC模式*/
/*Demo 9*/
当程序变得复杂时,就需要有效的管理我们的pannels,forms,trees,data,grids和其他的组件
 
 
 
 
 
 
(4)学习及研究示例
 
 
官方网站: http://extjs.org.cn/
 
书本: Packt.Ext.JS.4.First.Look.Jan.2012
 
 
 
 
 
 
 
 
(5)多运用

e-leaning

 
(6)、熟读Ext项目的源代码
 
 
 
(7)、理解,熟悉,掌握Json
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 





转载于:https://www.cnblogs.com/zuifengke/archive/2012/07/25/7ba3f0d6e934710a0e7ecda70bebbfe8.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值