ExtJs学习笔记(2)_Basic GridPanel[基本网格]

这一节,将学习如何使用网络上最常见的UI控件_Grid

 

1.静态示例:

静态示例其实官方下载包里,就有sample,这里只贴出代码。

 

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  	<link href="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/classic/theme-classic/resources/theme-classic-all.css" rel="stylesheet" />
   	<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/ext-all.js"></script>
    	<title>ExtJs Grid</title>
</head>

<script type="text/javascript">
    Ext.onReady(function() {

    //设置缓存
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
    	
    //数据来源,实际应用用可动态读取
    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/2 12:00am'],
        ['General Motors Corporation', 30.27, 1.09, 3.74, '9/3 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']
    ];

    //"变化"字段的格式化输出
    function change(val) {
        if (val > 0) {
            return '<span style="color:green;">' + val + '</span>';
        } else if (val < 0) {
            return '<span style="color:red;">' + val + '</span>';
        }
        return val;
    }

    //"变化(%)"字段的格式化输出
    function pctChange(val) {
        if (val > 0) {
            return '<span style="color:green;">' + val + '%</span>';
        } else if (val < 0) {
            return '<span style="color:red;">' + val + '%</span>';
        }
        return val;
    }
   
  
    //创建数据存储(类似c#中的dataset构架)
    var store = new Ext.data.SimpleStore({
        fields: [
           { name: 'company' },
           { name: 'price', type: 'float' },
           { name: 'change', type: 'float' },
           { name: 'pctChange', type: 'float' },
           { name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia' }
        ]
    });

    //加载数据
    store.loadData(myData);
  

    //创建数据表格
    var grid = new Ext.grid.GridPanel({
        store: store,
        columns: [
            { id: 'company', header: "公司名", width: 160, sortable: true, dataIndex: 'company' },
            { header: "价格", width: 75, sortable: true,  renderer:Ext.util.Format.usMoney,dataIndex: 'price' },
            { header: "变化", width: 75, sortable: true, renderer: change, dataIndex: 'change' },
            { header: "变化(%)", width: 75, sortable: true, renderer: pctChange, dataIndex: 'pctChange' },
            { header: "最后更新", width: 85, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange' }
        ],
        stripeRows: true,
        autoExpandColumn: 'company',
        height: 350,
        forceFit: true, //自动列宽
        title: '简单网络示例'
    });
	
    //宣染指定ID
    grid.render('grid-example');
    
    //默认选择第一行
    //grid.getSelectionModel().selectFirstRow();         
    });
</script>

<body> 
<div id="grid-example"></div>
</body>
</html>

  

附注:renderer: pctChange 是指向下面这个方法的,renderer: Ext.util.Format.dateRenderer('m/d/Y') 是用ext自带的方法格式化时间显示样式;

//"变化(%)"字段的格式化输出
    function pctChange(val) {
        if (val > 0) {
            return '<span style="color:green;">' + val + '%</span>';
        } else if (val < 0) {
            return '<span style="color:red;">' + val + '%</span>';
        }
        return val;
    }

 

效果显示如下:

 

posted @ 2018-07-10 21:14  大脸猫9527  阅读(198)  评论(0)    收藏  举报