问题描述
问一个简单的问题,但是困扰我很久了,各位帮忙看一下。Ext.onReady(function(){testdaoimp.getUserList2Json(callback);//dwr获得数据function callback(_data){ //回调函数var cm = new Ext.grid.ColumnModel([ {header:'编号',dataIndex:'id'}, {header:'密码',dataIndex:'password'},{header:'姓名',dataIndex:'username'}]);cm.defaultSortable = true;//var data={//'coders':[//{"id":"1","password":"k","username":"zhoukai"},//{"id":"2","password":"m","username":"xumakr"}// ]// }; //如果采用这里的data作为数据源的话,正常运行,可以看到效果。var ds = new Ext.data.Store({ proxy: new Ext.data.MemoryProxy(_data),//alert(_data)的结果和前面自定义的data从文本上内容一模一样。估计问题出现在此。javascript不认识从dwr回调的结果。 reader: new Ext.data.JsonReader({root: 'coders'}, [ {name: 'id'}, {name: 'password'}, {name: 'username'} ]) });var sm = new Ext.grid.CheckboxSelectionModel();ds.load();var grid = new Ext.grid.GridPanel({ el: 'grid', ds: ds, cm: cm, sm: sm, title: 'HelloWorld', autoHeight: true});grid.render(); };});
解决方案
你前面自定义的data是一个对象,而返回的_data是一个字符串,当然不能正确显示.可以用eval(_data)转换为对象后再使用。