• ExtJS 4 Grid


    原文地址:http://www.showframework.com/2012/07/extjs-4-grids/

    此文章翻译的官方文章,感觉还是有一些地方不是很详细

    效果图:

     Ext.onReady(function () {
                Ext.define('User', {
                    extend: 'Ext.data.Model',
                    fields: ['name', 'email', 'phone']
                });
    
                var userStore = Ext.create('Ext.data.Store', {
                    model: 'User',
                    //使用内联 数据
                    data: [
                        { name: 'Lisa', email: 'lisa@simpsons.com', phone: '555-111-1224' },
                        { name: 'Bart', email: 'bart@simpsons.com', phone: '555-222-1234' },
                        { name: 'Homer', email: 'home@simpsons.com', phone: '555-222-1244' },
                        { name: 'Marge', email: 'marge@simpsons.com', phone: '555-222-1254' }
                    ]
                });
                Ext.create('Ext.grid.Panel', {
                    renderTo: Ext.getBody(),
                    store:userStore,//数据源
                     400,
                    height: 200,
                    title: 'Application Users',
                    columns: [
                        {
                            text: 'name',
                             100,
                            sortable: false,
                            hideable: false,
                            dataIndex: 'name'
                        },
                        {
                            text:'Email Address',
                            150,
                            dataIndex: 'email',
                            hidden:false //隐藏了 这列 
                        },
                        {
                            text:'Phone Number',
                            flex:1,
                            dataIndex:'phone'
                        }
                    ]
                });
            });

    我们创建了一个表格面板渲染到了body中,并且告诉它从之前创建的userStore中取得数据,最后我们定义了表格面板有哪些列,用dataIndex属性配置表格中的列和User Model中的字段的对应关系,Name列宽度是100,不能排序也不能隐藏,Email Address列默认是隐藏的(可以通过其他列的菜单控制显示),Phone Number列自适应表格剩余的宽度

     =================================================================================

     Fit布局+Grid

    在Fit布局中,子元素将自动填满整个父容器。注意:在fit布局下,对其子元素设置宽度是无效的。如果在fit布局中放置了多个组件,则只会显示第一个子元素。典型的案例就是当客户要求一个window或panel中放置一个GRID组件,grid组件的大小会随着父容器的大小改变而改变。

    这里的Grid的数据类型使用ArrayStore

    Fit布局Grid+ArrayStore
    var myData = [ 
            ['3m Co',                               71.72, 0.02,  0.03,  '9/1 12:00am'], 
            ['Alcoa Inc',                           29.01, 0.42,  1.47,  '9/1 12:00am'], 
            ['Altria Group Inc',                    83.81, 0.28,  0.34,  '9/1 12:00am'], 
            ['American Express Company',            52.55, 0.01,  0.02,  '9/1 12:00am'], 
            ['American International Group, Inc.',  64.13, 0.31,  0.49,  '9/1 12:00am'], 
            ['AT&T Inc.',                           31.61, -0.48, -1.54, '9/1 12:00am'], 
            ['Boeing Co.',                          75.43, 0.53,  0.71,  '9/1 12:00am'], 
            ['Caterpillar Inc.',                    67.27, 0.92,  1.39,  '9/1 12:00am'], 
            ['Citigroup, Inc.',                     49.37, 0.02,  0.04,  '9/1 12:00am'], 
            ['E.I. du Pont de Nemours and Company', 40.48, 0.51,  1.28,  '9/1 12:00am'], 
            ['Exxon Mobil Corp',                    68.1,  -0.43, -0.64, '9/1 12:00am'], 
            ['General Electric Company',            34.14, -0.08, -0.23, '9/1 12:00am'], 
            ['General Motors Corporation',          30.27, 1.09,  3.74,  '9/1 12:00am'], 
            ['Hewlett-Packard Co.',                 36.53, -0.03, -0.08, '9/1 12:00am'], 
            ['Honeywell Intl Inc',                  38.77, 0.05,  0.13,  '9/1 12:00am'], 
            ['Intel Corporation',                   19.88, 0.31,  1.58,  '9/1 12:00am'], 
            ['International Business Machines',     81.41, 0.44,  0.54,  '9/1 12:00am'], 
            ['Johnson & Johnson',                   64.72, 0.06,  0.09,  '9/1 12:00am'], 
            ['JP Morgan & Chase & Co',              45.73, 0.07,  0.15,  '9/1 12:00am'], 
            ['McDonald\'s Corporation',             36.76, 0.86,  2.40,  '9/1 12:00am'], 
            ['Merck & Co., Inc.',                   40.96, 0.41,  1.01,  '9/1 12:00am'], 
            ['Microsoft Corporation',               25.84, 0.14,  0.54,  '9/1 12:00am'], 
            ['Pfizer Inc',                          27.96, 0.4,   1.45,  '9/1 12:00am'], 
            ['The Coca-Cola Company',               45.07, 0.26,  0.58,  '9/1 12:00am'], 
            ['The Home Depot, Inc.',                34.64, 0.35,  1.02,  '9/1 12:00am'], 
            ['The Procter & Gamble Company',        61.91, 0.01,  0.02,  '9/1 12:00am'], 
            ['United Technologies Corporation',     63.26, 0.55,  0.88,  '9/1 12:00am'], 
            ['Verizon Communications',              35.57, 0.39,  1.11,  '9/1 12:00am'], 
            ['Wal-Mart Stores, Inc.',               45.45, 0.73,  1.63,  '9/1 12:00am'] 
        ]; 
    var store = Ext.create('Ext.data.ArrayStore', { 
        fields: [ 
           {name: 'company'}, 
           {name: 'price',      type: 'float'}, 
           {name: 'change',     type: 'float'}, 
           {name: 'pctChange',  type: 'float'}, 
           {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'} 
        ], 
        data: myData 
    }); 
    
    Ext.define('DataWindow',{ 
        extend : 'Ext.window.Window', 
        title : 'Fit布局示例代码',
         550, 
        height:300,
        layout : 'fit', 
        items : { 
            xtype : 'gridpanel', 
            store: store, 
            columns: [ 
               { 
                   text     : 'Company', 
                   flex     : 1, 
                   sortable : false, 
                   dataIndex: 'company' 
               }, 
               { 
                   text     : 'Price', 
                   width    : 75, 
                   sortable : true, 
                   renderer : 'usMoney', 
                   dataIndex: 'price' 
               }, 
               { 
                   text     : 'Change', 
                   width    : 75, 
                   sortable : true, 
                   dataIndex: 'change' 
               }, 
               { 
                   text     : '% Change', 
                   width    : 75, 
                   sortable : true, 
                   
                   dataIndex: 'pctChange' 
               }, 
               { 
                   text     : 'Last Updated', 
                   width    : 85, 
                   sortable : true, 
                   renderer : Ext.util.Format.dateRenderer('m/d/Y'), 
                   dataIndex: 'lastChange' 
               }] 
        } 
    });
    
    Ext.onReady(function () {
        var win = Ext.create("DataWindow", {
            x: 10,
            y: 20
            
        });
        win.show();//
    }); 

    效果图:

     测试fit布局下放两个panel,因为默认只能显示一个,另一个必须要隐藏,有些类似于Card布局,只显示一个Panel内的内容:

    View Code
     var myData = [ 
            ['3m Co',                               71.72, 0.02,  0.03,  '9/1 12:00am'], 
            ['Alcoa Inc',                           29.01, 0.42,  1.47,  '9/1 12:00am'], 
            ['Altria Group Inc',                    83.81, 0.28,  0.34,  '9/1 12:00am'], 
            ['American Express Company',            52.55, 0.01,  0.02,  '9/1 12:00am'], 
            ['American International Group, Inc.',  64.13, 0.31,  0.49,  '9/1 12:00am'], 
            ['AT&T Inc.',                           31.61, -0.48, -1.54, '9/1 12:00am'], 
            ['Boeing Co.',                          75.43, 0.53,  0.71,  '9/1 12:00am'], 
            ['Caterpillar Inc.',                    67.27, 0.92,  1.39,  '9/1 12:00am'], 
            ['Citigroup, Inc.',                     49.37, 0.02,  0.04,  '9/1 12:00am'], 
            ['E.I. du Pont de Nemours and Company', 40.48, 0.51,  1.28,  '9/1 12:00am'], 
            ['Exxon Mobil Corp',                    68.1,  -0.43, -0.64, '9/1 12:00am'], 
            ['General Electric Company',            34.14, -0.08, -0.23, '9/1 12:00am'], 
            ['General Motors Corporation',          30.27, 1.09,  3.74,  '9/1 12:00am'], 
            ['Hewlett-Packard Co.',                 36.53, -0.03, -0.08, '9/1 12:00am'], 
            ['Honeywell Intl Inc',                  38.77, 0.05,  0.13,  '9/1 12:00am'], 
            ['Intel Corporation',                   19.88, 0.31,  1.58,  '9/1 12:00am'], 
            ['International Business Machines',     81.41, 0.44,  0.54,  '9/1 12:00am'], 
            ['Johnson & Johnson',                   64.72, 0.06,  0.09,  '9/1 12:00am'], 
            ['JP Morgan & Chase & Co',              45.73, 0.07,  0.15,  '9/1 12:00am'], 
            ['McDonald\'s Corporation',             36.76, 0.86,  2.40,  '9/1 12:00am'], 
            ['Merck & Co., Inc.',                   40.96, 0.41,  1.01,  '9/1 12:00am'], 
            ['Microsoft Corporation',               25.84, 0.14,  0.54,  '9/1 12:00am'], 
            ['Pfizer Inc',                          27.96, 0.4,   1.45,  '9/1 12:00am'], 
            ['The Coca-Cola Company',               45.07, 0.26,  0.58,  '9/1 12:00am'], 
            ['The Home Depot, Inc.',                34.64, 0.35,  1.02,  '9/1 12:00am'], 
            ['The Procter & Gamble Company',        61.91, 0.01,  0.02,  '9/1 12:00am'], 
            ['United Technologies Corporation',     63.26, 0.55,  0.88,  '9/1 12:00am'], 
            ['Verizon Communications',              35.57, 0.39,  1.11,  '9/1 12:00am'], 
            ['Wal-Mart Stores, Inc.',               45.45, 0.73,  1.63,  '9/1 12:00am'] 
        ]; 
    var store = Ext.create('Ext.data.ArrayStore', { 
        fields: [ 
           {name: 'company'}, 
           {name: 'price',      type: 'float'}, 
           {name: 'change',     type: 'float'}, 
           {name: 'pctChange',  type: 'float'}, 
           {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'} 
        ], 
        data: myData
    });
    var grid = Ext.create('Ext.grid.Panel', {
        //xtype: 'gridpanel',
        store: store,
        columns: [
               {
                   text: 'Company',
                   flex: 1,
                   sortable: false,
                   dataIndex: 'company'
               },
               {
                   text: 'Price',
                    75,
                   sortable: true,
                   renderer: 'usMoney',
                   dataIndex: 'price'
               },
               {
                   text: 'Change',
                    75,
                   sortable: true,
                   dataIndex: 'change'
               },
               {
                   text: '% Change',
                    75,
                   sortable: true,
    
                   dataIndex: 'pctChange'
               },
               {
                   text: 'Last Updated',
                    85,
                   sortable: true,
                   renderer: Ext.util.Format.dateRenderer('m/d/Y'),
                   dataIndex: 'lastChange'
               }]
    });
    function MenuClick(item) {
        var win = Ext.getCmp("win1");
        switch (item.tooltip) {
            case "三维":
                grid.show();
                win.doLayout();
                break;
            case "二维":
                grid.hide();
                win.doLayout();
                break;
            default:
                break;
        }
    }
    var panel = Ext.create('Ext.panel.Panel', {
        html:'22222222222222'
    });
    Ext.define('DataWindow', {
        id: 'win1',
        extend: 'Ext.window.Window',
        title: 'Fit布局示例代码',
         550,
        height: 300,
        layout: 'fit',
        dockedItems: [{
            dock: 'top',
            xtype: 'toolbar',
            items: [{
                xtype: 'button',
                text: '三维',
                tooltip: '三维',
                handler:MenuClick
            }, {
                xtype: 'button',
                text: '二维',
                tooltip: '二维',
                handler: MenuClick
            }]
        }],
        items: [grid, panel]
    });
    
    Ext.onReady(function () {
        var win = Ext.create("DataWindow", {
            x: 10,
            y: 20
            
        });
        win.show();//
    }); 

    点击二维展示第二个panel内容。

  • 相关阅读:
    httprunner 3.x学习12
    httprunner 3.x学习11
    PyTorch中.view()与.reshape()方法以及.resize_()方法的对比
    算术编码简介
    量化参数QP:quantization parameter 以及 HEVC
    H.265/HEVC编码结构
    H.265 视频编码中的 CTU, CU, PU, TU
    I帧、P帧、B帧、GOP、IDR 和PTS, DTS之间的关系
    视频编码 率失真性能评价指标:PSNR SSIM BD-rate BD-PSNR
    矢量量化(VQ,Vector Quantization)
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/2669682.html
Copyright © 2020-2023  润新知