function LoadGrid() {
Ext.lib.Ajax.defaultPostHeader += ";charset=GBK";
//jsonReader
var JsonReader = new Ext.data.JsonReader({
totalProperty : "results",
root : "data",
id : 'name',
successProperty : "successproperty"
}, [{
name : 'name',
mapping : 'name'
}, {
name : 'age',
mapping : 'age'
}, {
name : 'sex',
mapping : 'sex'
}, {
name : 'fav',
mapping : 'fav'
}, {
name : 'birth',
mapping : 'birth'
}]);// 如果name与mapping同名 可以省略mapping
var Httpproxy = new Ext.data.HttpProxy({
url : 'MyJsp.jsp'
});// HttpProxy
var ds = new Ext.data.Store({
proxy : Httpproxy,
reader : JsonReader
});
ds.load();
var colModel = new Ext.grid.ColumnModel([{
header : "姓名",
width : 120,
sortable : true,
dataIndex : 'name'
}, {
header : "年龄",
width : 90,
sortable : true,
dataIndex : 'age'
}, {
header : "性别",
width : 110,
sortable : true,
dataIndex : 'sex'
}, {
header : "爱好",
width : 120,
sortable : true,
dataIndex : 'fav'
}, {
header : "生日",
width : 120,
sortable : true,
renderer : Ext.util.Format.dateRenderer('m/d/Y'),
dataIndex : 'birth'
}]);
var grid = new Ext.grid.GridPanel({
store : ds,
cm : colModel,
frame : true,
width : 600,
height : 450
});
grid.render('grid');
}
MyJsp.jsp返回的数据如下
JScript code{"results":3,"successproperty":true,"data":[{sex:"男性",age:"29111",birth:"9/1 12:00am",fav:"fighting123213",name:"XJGZINFO"},
{sex:"男性",age:"2311",birth:"",fav:"fighting123213",name:"XJGZINFO"},
{"sex":"男性","age":"29111","birth":"9/1 12:00am","fav":"fighting123213","name":"XJGZINFO"},
{"sex":"男性","age":"2311","birth":"","fav":"fighting123213","name":"XJGZINFO"}]}
[b]问题补充:[/b]
谢谢chanball的回答
rusults没对上,可是改成4还是只显示一条数据
转换的时候我用了JSONObject
手写和使用JSONObject返回的数据是一致的