var grid = new Ext.grid.GridPanel({ store: store, columns: [ {id : 'company',header: 'Company', 160, sortable: true, dataIndex: 'company'}, {header: 'Price', 75, sortable: true, renderer: 'usMoney', dataIndex: 'price'}, {header: 'Change', 75, sortable: true, renderer: change, dataIndex: 'change'}, {header: '% Change', 75, sortable: true, renderer: pctChange, dataIndex: 'pctChange'}, {header: 'Last Updated', 85, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'} ], stripeRows: true, autoExpandColumn: 'company', height: 350, 600, title: 'Array Grid', // config options for stateful behavior stateful: true, stateId: 'grid' });
上面代码中红颜色hightlight的id去掉,刷新页面报:this.config[...].width为空或不是对象的错误。查看Ext API帮助文档,其中Column类中对id的解释中最后一句:
The Ext.grid.GridPanel.autoExpandColumn grid config option references the column via this unique identifier.
而GridPanel对autoExpandColumn的解释如下:
autoExpandColumn : String
The id of a column in this grid that should expand to fill unused space. This value specified here can not be 0.
解决该问题的方法是:
1.恢复操作,即把id : 'company'添加回去。
2.把autoExpandColumn: 'company',去掉。