HTML设置:
head--->
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" /> <script type="text/javascript" src="../../adapter/ext/ext-base.js"></script> <script type="text/javascript" src="../../ext-all.js"></script> <!-- JS文件的引用 --> <script type="text/javascript" src="../../examples/ux/RowExpander.js"></script> <script type="text/javascript" src="GridWithPlugins.js"></script> <style type="text/css"> body .x-panel { margin-bottom:20px; } .icon-grid { background-image:url(../../examples/shared/icons/fam/grid.png) !important; } #button-grid .x-panel-body { border:1px solid #99bbe8; border-top:0 none; } .add { background-image:url(../../examples/shared/icons/fam/add.gif) !important; } .option { background-image:url(../../examples/shared/icons/fam/plugin.gif) !important; } .remove { background-image:url(../../examples/shared/icons/fam/delete.gif) !important; } .save { background-image:url(../../examples/shared/icons/save.gif) !important; } </style>
JS--->
/** * 2011_04_15 */ Ext.onReady(function() { Ext.QuickTips.init(); var xg = Ext.grid; //简称 //ArrayReader var reader = new Ext.data.ArrayReader({},[ {name: 'company'}, {name: 'price', type: 'float'}, {name: 'change', type: 'float'}, {name: 'pctChange', type: 'float'}, {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}, {name: 'industry'}, {name: 'desc'} ]); //Grid1_rowExpander 行内容扩展 var expander = new Ext.ux.grid.RowExpander({ tpl: new Ext.Template( '<p><b>Company:</b> {company}</p><br>', '<p><b>Summany:</b> {desc}</p>' ) }); //第一个grid:带有行内容扩展的。 var grid1 = new xg.GridPanel({ store: new Ext.data.Store({ //store配置参数 reader: reader, data: xg.dummyData }), cm: new xg.ColumnModel({ //cm_ColumnModel模型的添加 defaults: { width: 20, sortable: true }, columns: [ //列 expander, //添加行内容扩展 {id: 'company', header: 'Company', width: 40, dataIndex: 'company'}, {header: 'Price', renderer: Ext.util.Format.usMoney, dataIndex: 'price'}, {header: 'Change', dataIndex: 'change'}, {header: '% Change', dataIdnex: 'pctChange'}, {header: 'Last Updated', renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'} ] }), viewConfig: { //grid视图的配置 forceFit: true }, width: 600, //height: 300, //说明:当设置autoHeight属性时,height就起不到作用 autoHeight: true, plugins: expander, //扩展组件 collapsible: true, animCollapse: false, title: 'GridWithExpanderRows', iconCls: 'icon-grid', renderTo: document.body }); //grid2_CheckboxSelectionModel var sm = new xg.CheckboxSelectionModel(); var grid2 = new xg.GridPanel({ store: new Ext.data.Store({ reader: reader, data: xg.dummyData }), cm: new xg.ColumnModel({ defaults: { width: 120, sortable: true }, columns: [ sm, {id: 'company', header: 'Company', width: 200, dataIndex: 'company'}, {header: "Price", renderer: Ext.util.Format.usMoney, dataIndex: 'price'}, {header: 'Change', dataIndex: 'change'}, {header: '% Change', dataIndex: 'pctChange'}, {header: 'Last Updated', width: 135, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'} ] }), sm: sm, columnLines: true, //true to add css for column separation lines. Default is false. width: 600, //height: 300, autoHeight: true, frame: true, title: 'GridWithCheckboxSelection', iconCls: 'icon-grid', renderTo: document.body }); //grid3 var grid3 = new xg.GridPanel({ store: new Ext.data.Store({ reader: reader, data: xg.dummyData }), cm: new xg.ColumnModel([ new xg.RowNumberer(), {id: 'company', header: 'Company', width: 40, sortable: true, dataIndex: 'company'}, {header: 'Price', width: 20, sortable: true, renderer: Ext.util.Format.usMoney, dataIndex: 'price'}, {header: 'Change', width: 20, sortable: true, dataIndex: 'change'}, {header: '% Change', width: 20, sortable: true,dataIndex: 'pctChange'}, {header: 'Last Updated', width: 20, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'} ]), viewConfig: { forceFit: true }, columnLines: true, //为grid添加样式:方格 width: 600, //height: 300, autoHeight: true, title: 'GridWithNumberedRows', iconCls: 'icon-grid', renderTo: document.body });//end of grid3 //grid4 var sm4 = new xg.CheckboxSelectionModel({ listeners: { selectionchange: function(sm) { //当行选择发送改变时触发 if(sm.getCount()) { //如果选择了行 grid4.removeButton.enable(); //显示removeButton } else { grid4.removeButton.disable(); } } } }); var grid4 = new xg.GridPanel({ id: 'button-grid', store: new Ext.data.Store({ reader: reader, data: xg.dummyData }), cm: new xg.ColumnModel([ sm4, {id: 'company', header: 'Company', width: 40, sortable: true, dataIndex: 'company'}, {header: 'Price', width: 20, sortable: true, renderer: Ext.util.Format.usMoney, dataIndex: 'price'}, {header: 'Change', width: 20, sortable: true, dataIndex: 'change'}, {header: '% Change', width:20, sortable: true, dataIndex: 'pctChange'}, {header: 'Last Updated', width: 20, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'} ]), sm: sm4, viewConfig: { forceFit: true }, columnLines: true, buttons: [{text: 'Save'}, {text:'Cancel'}], buttonAlign: 'center', tbar: [{//顶部工具栏 text: 'AddSomething', tooltip: 'Add a new row', //提示信息 iconCls: 'add', handler: function() { alert("这是添加按钮单击事件"); } }, '-', { text: 'Options', tooltip: '选项', iconCls: 'option' }, '-', { text: 'Remove Something', tooltip: 'Remove the selected item', iconCls: 'remove', ref: '../../examples/removeButton', disabled: true //开始时不可见 }], width: 600, //height: 300, autoHeight: true, frame: true, title: 'Support for standard Panel features such as framing,buttons and toolbars', iconCls: 'icon-grid', renderTo: document.body });//end of grid4 }); //数据 Ext.grid.dummyData = [ //说明:至于描述列的数据,在后面添加。 ['大唐人制造业1',99.98,0.11,0.23,'9/1 12:00am', '制造业'], ['大唐人制造业2',99.98,-0.11,-0.23,'9/1 12:00am', '制造业'], ['大唐人金融1',99.98,0.11,0.23,'9/1 12:00am', '金融'], ['大唐人金融2',99.98,-0.11,-0.23,'9/1 12:00am', '金融'] ]; for(var i = 0;i < Ext.grid.dummyData.length; i++) { Ext.grid.dummyData[i].push(String.format("第{0}条描述信息!")) }