请教各位熟悉EXT的大大,小弟初学EXT,现在在使用grid时碰到一个问题,从JSON中获取的数据无法显示在grid中,以二维数组的方式设置ds则可以正常显示数据,请教各位大大是啥原因,代码如下:
JSP代码:<%
String start = request.getParameter("start");
String limit = request.getParameter("limit");
int index = 0;
int pageSize = 0;
try {
if(start == null)
{
index = 0;
pageSize = 15;
} else
{
index = Integer.parseInt(start);
pageSize = Integer.parseInt(limit);
}
String json = "{total:100,data:[";
for (int i = index; i < pageSize + index; i++) {
json += "{id:'" + i + "',name:'name" + i + "',descn:'descn" + i + "'}";
if (i != pageSize + index - 1) {
json += ",";
}
}
json += "]}";
System.out.println(json);
response.getWriter().write(json);
} catch(Exception ex) {
}
%>JS代码Ext.onReady(function(){
Ext.menu.RangeMenu.prototype.icons = {
gt: 'img/greater_then.png',
lt: 'img/less_then.png',
eq: 'img/equals.png'
};
Ext.grid.filter.StringFilter.prototype.icon = 'img/find.png';
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
<!-- var data = [-->
<!-- ['1','name1','descn1'],-->
<!-- ['2','name2','descn2'],-->
<!-- ['3','name3','descn3'],-->
<!-- ['4','name4','descn4'],-->
<!-- ['5','name5','descn5'],-->
<!-- ['6','name6','descn1'],-->
<!-- ['7','name7','descn2'],-->
<!-- ['8','name8','descn3'],-->
<!-- ['9','name7','descn2'],-->
<!-- ['10','name8','descn3'],-->
<!-- ['11','name8','descn3']-->
<!-- ];-->
<!-- var ds = new Ext.data.Store({-->
<!-- proxy: new Ext.data.MemoryProxy(data),-->
<!-- reader: new Ext.data.ArrayReader({}, [-->
<!-- {name: 'id'},-->
<!-- {name: 'name'},-->
<!-- {name: 'descn'}-->
<!-- ])-->
<!-- });-->
var sm = new Ext.grid.CheckboxSelectionModel();
var cm = new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer(),
sm,
{header:'编号',dataIndex:'id'},
{header:'名称',dataIndex:'name'},
{header:'描述',dataIndex:'descn'}
]);
cm.defaultSortable = true;
var ds = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url:'test111.jsp'}),
reader: new Ext.data.JsonReader({
totalProperty: 'total',
root: 'data'},
[
{name: 'id'},
{name: 'name'},
{name: 'descn'}
]
)
});
var grid = new Ext.grid.GridPanel({
title: 'Grid Filters Example',
enableColLock: false,
el: 'grid-example',
ds: ds,
cm: cm,
sm: sm,
loadMask: {msg:'正在加载数据,请稍侯……'},
autoHeight:true,
width:700,
bbar: new Ext.PagingToolbar({
store: ds,
pageSize: 5,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg: "没有记录"
})
});
grid.render();
ds.load({params:{start: 0, limit: 5}});
});JSON返回的数据格式如下:
{total:100,data:[{id:'0',name:'name0',descn:'descn0'},{id:'1',name:'name1',descn:'descn1'},{id:'2',name:'name2',descn:'descn2'},{id:'3',name:'name3',descn:'descn3'},{id:'4',name:'name4',descn:'descn4'}]}
请教各位大大为什么上面的数据为什么不能正常显示在grid中
JSP代码:<%
String start = request.getParameter("start");
String limit = request.getParameter("limit");
int index = 0;
int pageSize = 0;
try {
if(start == null)
{
index = 0;
pageSize = 15;
} else
{
index = Integer.parseInt(start);
pageSize = Integer.parseInt(limit);
}
String json = "{total:100,data:[";
for (int i = index; i < pageSize + index; i++) {
json += "{id:'" + i + "',name:'name" + i + "',descn:'descn" + i + "'}";
if (i != pageSize + index - 1) {
json += ",";
}
}
json += "]}";
System.out.println(json);
response.getWriter().write(json);
} catch(Exception ex) {
}
%>JS代码Ext.onReady(function(){
Ext.menu.RangeMenu.prototype.icons = {
gt: 'img/greater_then.png',
lt: 'img/less_then.png',
eq: 'img/equals.png'
};
Ext.grid.filter.StringFilter.prototype.icon = 'img/find.png';
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
<!-- var data = [-->
<!-- ['1','name1','descn1'],-->
<!-- ['2','name2','descn2'],-->
<!-- ['3','name3','descn3'],-->
<!-- ['4','name4','descn4'],-->
<!-- ['5','name5','descn5'],-->
<!-- ['6','name6','descn1'],-->
<!-- ['7','name7','descn2'],-->
<!-- ['8','name8','descn3'],-->
<!-- ['9','name7','descn2'],-->
<!-- ['10','name8','descn3'],-->
<!-- ['11','name8','descn3']-->
<!-- ];-->
<!-- var ds = new Ext.data.Store({-->
<!-- proxy: new Ext.data.MemoryProxy(data),-->
<!-- reader: new Ext.data.ArrayReader({}, [-->
<!-- {name: 'id'},-->
<!-- {name: 'name'},-->
<!-- {name: 'descn'}-->
<!-- ])-->
<!-- });-->
var sm = new Ext.grid.CheckboxSelectionModel();
var cm = new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer(),
sm,
{header:'编号',dataIndex:'id'},
{header:'名称',dataIndex:'name'},
{header:'描述',dataIndex:'descn'}
]);
cm.defaultSortable = true;
var ds = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url:'test111.jsp'}),
reader: new Ext.data.JsonReader({
totalProperty: 'total',
root: 'data'},
[
{name: 'id'},
{name: 'name'},
{name: 'descn'}
]
)
});
var grid = new Ext.grid.GridPanel({
title: 'Grid Filters Example',
enableColLock: false,
el: 'grid-example',
ds: ds,
cm: cm,
sm: sm,
loadMask: {msg:'正在加载数据,请稍侯……'},
autoHeight:true,
width:700,
bbar: new Ext.PagingToolbar({
store: ds,
pageSize: 5,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg: "没有记录"
})
});
grid.render();
ds.load({params:{start: 0, limit: 5}});
});JSON返回的数据格式如下:
{total:100,data:[{id:'0',name:'name0',descn:'descn0'},{id:'1',name:'name1',descn:'descn1'},{id:'2',name:'name2',descn:'descn2'},{id:'3',name:'name3',descn:'descn3'},{id:'4',name:'name4',descn:'descn4'}]}
请教各位大大为什么上面的数据为什么不能正常显示在grid中
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货