一个简单的 extjs GridPanel 无法显示

Ext.onReady(function() {

        var cm = new Ext.grid.ColumnModel({
                    header : '编号',
                    dataIndex : 'id'
                }, {
                    header : '名称',
                    dataIndex : 'name'
                }, {
                    header : '描述',
                    dataIndex : 'desc'
                });

        var data = [['1', 'name1', 'descn1'], ['2', 'name2', 'descn2'],
                ['3', 'name3', 'descn3'], ['4', 'name4', 'descn4'],
                ['5', 'name5', 'descn5']

        ];

        var ds = new Ext.data.Store({
                    proxy : new Ext.data.MemoryProxy(data),//The Proxy object which provides access to a data object
                    reader : new Ext.data.ArrayReader({}, [{ //The Reader object which processes the data object and returns an Array of Ext.data.record objects
                                                             // which are cached keyed by their id property.
                                        name : 'id',
                                        mapping: 0
                                    }, {
                                        name : 'name',
                                        mapping:1
                                    }, {
                                        name : 'desc',
                                        mapping:2
                                    }])
                });
        ds.load();


        var grid = new Ext.grid.GridPanel({
                    el : 'grid',   //对应页面的<div id="grid"></div>
                    ds : ds,
                    cm : cm

                });
        grid.render ();

});

就这么一个简单的小例子 可是在页面就显示一个条 请问原因

根据红色的部份去修改就可以了:
Ext.onReady(function() {

var cm = new Ext.grid.ColumnModel([color=red][[/color]{
header : '编号',
dataIndex : 'id'
}, {
header : '名称',
dataIndex : 'name'
}, {
header : '描述',
dataIndex : 'desc'
}[color=red]][/color]);

var data = [['1', 'name1', 'descn1'], ['2', 'name2', 'descn2'],
['3', 'name3', 'descn3'], ['4', 'name4', 'descn4'],
['5', 'name5', 'descn5']

];

var ds = new Ext.data.Store({
proxy : new Ext.data.MemoryProxy(data),//The Proxy object which provides access to a data object
reader : new Ext.data.ArrayReader({}, [{ //The Reader object which processes the data object and returns an Array of Ext.data.record objects
// which are cached keyed by their id property.
name : 'id',
mapping: 0
}, {
name : 'name',
mapping:1
}, {
name : 'desc',
mapping:2
}])
});
ds.load();

var grid = new Ext.grid.GridPanel({
el : 'grid', //对应页面的


ds : ds,
cm : cm[color=red],
width:320,
height:200[/color]
});
grid.render ();

});

var grid = new Ext.grid.GridPanel({
el : 'grid', //对应页面的


ds : ds,
cm : cm,
width:200,
height:300
});
试试,应该是计算不出高度的原因

没设置高度的原因
var grid = new Ext.grid.GridPanel({
el : 'grid', //对应页面的


ds : ds,
cm : cm,
height: 500
});

这个应该属于布局原因
尝试放到viewport里面,采用layout:'fit'来自动适应 或者设定grid为指定高度

去掉ds.load();