ExtJS store加载数据loadexception

紫砂壶泡咖啡 2014-07-04 11:14:05
store加载数据,后台数据能用HttpWatch取到,columnmodel的字段列名已更改但是数据显示不出来,页面和后台没报错,store里面进入loadexception。用的ExtJs2.2.1
ExtJS代码
var checkoutTaskAllStore = new Ext.data.JsonStore({
proxy:new Ext.data.HttpProxy({
url:'checkoutTask!findAll.action'
}),
reader:checkoutTask_reader,
listeners:{
beforeload : function(s, options ) {
alert(0);
},
load : function(s, records, options ) {
alert(111);
},
loadexception : function(){
alert(2);
}
}

});

var checkoutTask_reader = new Ext.data.JsonReader({
autoLoad:false,
root:'taskList',
totalProperty:'count',
},checkout_record);

var checkout_record = Ext.data.Record.create([
{name:'pId', type:'int', mapping:'PId'},
{name:'pName', mapping:'product',
convert:function(val,r){
return val.PName;
}
},
{name:'vId', type:'int', mapping:'VId'},
{name:'internalVersion', mapping:'version',
convert:function(val,r){
return val.internalversion;
}
},
{name:"externalVersion", mapping:'version',
convert:function(val,r){
return val.externalversion;
}
},
{name:'baselineVersion', mapping:'version',
convert:function(val,r){
return val.baselineverision;
}
},
{name:'uboot', type:'string', mapping:'version',
convert:function(val,r){
return val.UBoot;
}
},
{name:'checkoutCreater', mapping:'userByCtUserId',
convert:function(val,r){
return val.userName;
}
},
{name:'checkoutHead', mapping:'userByCtCheckoutHead',
convert:function(val,r){
return val.userName;
}
},
{name:'ctNum', type:'string', mapping:'ctNum'},
{name:'createTime', type:'string', mapping:'ctTime'},
{name:'ctState', type:'string', mapping:'ctState'}
]);

var sm1=new Ext.grid.CheckboxSelectionModel();

var checkoutTask_cm = new Ext.grid.ColumnModel([
sm1,
{header:'任务编号', width:60, dataIndex:'ctNum', sortable:true},
{header:'产品名称', width:120, dataIndex:'pName', sortable:true},
{header:'内部版本号', width:120, dataIndex:'internalVersion'},
{header:'外部版本号', width:120, dataIndex:'externalVersion'},
{header:'U-BOOT版本号', width:120, dataIndex:'uboot'},
{header:'状态', width:60, dataIndex:'ctState', sortable:true},
{header:'创建人', width:90, dataIndex:'checkoutCreater', sortable:true},
{header:'责任人', width:90, dataIndex:'checkoutHead', sortable:true},
{header:'创建时间', width:120, dataIndex:'createTime', sortable:true},
{header:'操作', width:150, fixed:true, renderer:function(v,m,r){

}}
]);
var productRoot = new Ext.tree.AsyncTreeNode({
id:'productRoot',
text:'所有产品'
});

var productTree = new Ext.tree.TreePanel({
id:'productTree',
root:productRoot,
width:'auto',
border:false,
loader:new Ext.tree.TreeLoader({
dataUrl:'product!findAll.action'
}),
listeners:{
'click':function(node){
if(node.id == "productRoot"){
checkoutTaskAllStore.load({
params:{
start:0,
limit:20
}
});
Ext.getCmp('bbar').bind(checkoutTaskAllStore);
Ext.getCmp('tasklist_grid').reconfigure(checkoutTaskAllStore,checkoutTask_cm);
Ext.getCmp('tasklist_grid').view.refresh();
}
}
}
});



后台Action
public String findAll(){
taskList = checkoutTaskService.findAll(limit, start);
count = taskList.get(0).getCtId();
taskList.remove(0);
return SUCCESS;
}


DAO方法
@Override
public List findAll(final int limit, final int start) {
final String hql = "from CheckoutTask order by ctId DESC";
@SuppressWarnings("unchecked")
List<CheckoutTask> list = getHibernateTemplate().executeFind(new HibernateCallback() {

public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
int count=query.list().size();
query.setFirstResult(start);
query.setMaxResults(limit);
CheckoutTask task=new CheckoutTask();
task.setCtId(count);
List<CheckoutTask> l = new ArrayList<CheckoutTask>();
l.add(task);
Iterator ite=query.list().iterator();
for(;ite.hasNext();){
CheckoutTask task1=(CheckoutTask)ite.next();
l.add(task1);
}
return l;
}
});
return list;
}


HttpWatch获取的json数据
{"count":2,"taskList":[{"ctDel":0.0,"ctDemand":null,"ctId":2,"ctModify":1.0,"ctNew":2.0,"ctNum":"C0002","ctOtherPath":"D:\\","ctOtherUser":"62,34,48","ctProgramPath":"D:\\","ctSignificance":"1","ctStandartPath":"D:\\","ctState":"转测试评估","ctTime":"2014-06-26 16:55:52","ctTotal":3.0,"version":{"UBoot":"V1.0","VId":1,"baselineversion":"V1.0.0.4","externalversion":"V1.0.1L11","internalversion":"V1.0.0.4L11"}},{"ctDel":0.0,"ctDemand":null,"ctId":1,"ctModify":2.0,"ctNew":2.0,"ctNum":"C0001","ctOtherPath":"D:\\","ctOtherUser":"31,60,27","ctProgramPath":"D:\\","ctSignificance":"1","ctStandartPath":"D:\\","ctState":"转测试评估","ctTime":"2014-06-26 16:47:26","ctTotal":3.0,"version":{"UBoot":"V1.4","VId":9,"baselineversion":"V1.0.1.8","externalversion":"HNYX_DVN_JHB_V1.8","internalversion":"V1.0.1.9"}}]}


解决了一礼拜了,还是没解决,望高手帮忙看看!谢谢
...全文
240 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
浮生若梦 2014-07-29
  • 打赏
  • 举报
回复
你检查下mode和store是否跟后台传过来的数据对得上
紫砂壶泡咖啡 2014-07-23
  • 打赏
  • 举报
回复
引用 3 楼 xiaoxl0524 的回复:
你这个好像不是普通的grid而是treeGrid是吧?一般treeGrid是没有store的,而是用TreeLoader加载数据,后台渲染的json数据也不应该包括total之类的属性,而是只需要数据的数组应该就可以了
用的就是gridpanel,怎么可能用treegrid去显示表格
紫砂壶泡咖啡 2014-07-04
  • 打赏
  • 举报
回复
没人吗?救救我吧
棉花糖棉花 2014-07-04
  • 打赏
  • 举报
回复
你这个好像不是普通的grid而是treeGrid是吧?一般treeGrid是没有store的,而是用TreeLoader加载数据,后台渲染的json数据也不应该包括total之类的属性,而是只需要数据的数组应该就可以了
紫砂壶泡咖啡 2014-07-04
  • 打赏
  • 举报
回复
大家都不懂吗

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧