• 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
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     





  • 相关阅读:
    Oracle的rownum原理和使用
    ehcache 使用笔记
    @PostConstruct 注解
    Dubbo java.io.IOException: Can not lock the registry cache file
    java 学习 todoList
    因为本地没有配置 localhost 导致的 eclipse 的奇葩问题
    cheatsheet——mac 上的一款可以显示软件所有快捷键的小工具
    对象作为 map 的 key 时,需要重写 equals 方法和 hashCode 方法
    eclipse一直报An internal error occurred during: "Building workspace". GC overhead limit exceeded
    如何修改SVN客户端中保存的密码
  • 原文地址:https://www.cnblogs.com/zuifengke/p/7ba3f0d6e934710a0e7ecda70bebbfe8.html
Copyright © 2020-2023  润新知