我是ExtJs的新手, 请教一下各位前辈, 最近在做Spring + Hibernate + ExtJs + dwr 的整合 单表操作
一开始准备做个grid展示下 单表的数据: 用dwr获得后台service的数据
- Java code
public List findAll() { //这是后台数据 return bookDAO.findAll(); }
接下来我就在js文件中这样写
- JScript code
Ext.onReady(function(){ getBook.findAll(callBackResult); function callBackResult(_data){ function formatDate(value){ return value ? value.dateFormat('M d,Y') :''; }; var fm = Ext.form, Ed = Ext.grid.GridEditor; var ds = new Ext.data.Store({ proxy: new Ext.data.MemoryProxy(eval(_data)), reader: new Ext.data.JsonReader({root:'Book'},[ {name: 'bookId'}, {name: 'bookName'}, {name: 'pubType'}, {name: 'price'} ]) }); var cm = new Ext.grid.ColumnModel([ {id: 'bookId', header: "BOOKID", dataIndex: 'bookId', width: 200, align: 'center'}, {header: "BOOKNAME", dataIndex: 'bookName', width: 100, align: 'center', editor: new Ed(new fm.TextField({allowBlank: false}))}, {header: "PUBDATE", dataIndex: 'pubDate', width: 100, align: 'center', editor: new Ed(new fm.DateField({format:'m/d/y', minValue:'01/01/06',disabledDays: [0, 6],disabledDaysText: 'Plants are not available on the weekends'}))}, {header: "PRICE", dataIndex: 'price', width: 100, align: 'center', editor: new Ed(new fm.TextField({allowBlank: false}))} ]); cm.defaultSortable = true; var sm=new Ext.grid.RowSelectionModel(); var grid = new Ext.grid.Grid('editor-grid', { ds: ds, cm: cm, selModel: sm, autoSizeColumns: true, monitorWindowResize: false, trackMouseOver: true }); grid.render(); ds.load(); } });
问题就来了 数据无法展示 主要是root不知道该怎么写 希望大家能帮助我, 觉得我发的不够详细 请指出来我会进行修改
------解决方案--------------------
把:
var ds = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(eval(_data)),
reader: new Ext.data.JsonReader({root:'Book'},[
{name: 'bookId'},
{name: 'bookName'},
{name: 'pubType'},
{name: 'price'}
])
});
换成:
var ds = new Ext.data.JsonStore({
data: eval(_data),
fields: ['bookId', 'bookName', 'pubType', 'price']
});
------解决方案--------------------
既然用了DWR将数据异步获取到了 还Proxy干嘛
直接simpleStore将数据加载至grid中即可 相当于grid加载假数据~~~