分类: Java
2009-12-03 15:50:57
对于Ext中的store,我的最常用方法是用store,CloumnModel,gridPanel结合起来 一起使用,把数据库的数据展示在gridPanel中,这就必须调用store.load了;问题也随之而来了,如果是后台属于正常调用,而且有数据的时候就很好做了,但是如果是出现了异常,或者没有数据,那就必须向前台写会相应的信息,在前台中显示;为了这个问题搞了很久,终于解决;解决的方法就是把想方设法获得后台返回的数据(全部 而不是只是store的那一部分) 只要在页面中写入
store:store.reader.jsonData.message 就 可以了
eg:
business_store.load({
,
method:'post',
params:{
start:0,
limit:20,
userMobileNo:business_From.findById('s_userMobileNo').getValue(),
spOrderNo:business_From.findById('s_spOrderNo').getValue(),
startDate:business_From.findById('s_startDate').getValue()!=''?new Date(business_From.findById('s_startDate').getValue()).format('yyyy-MM-dd'):null,
endDate:business_From.findById('s_endDate').getValue()!=''?new Date(business_From.findById('s_endDate').getValue()).format('yyyy-MM-dd'):null,
attributive:business_From.findById('s_attributive').getValue(),
spId:business_From.findById('s_spId').getValue(),
tradeType:business_From.findById('s_tradeType').getValue(),
network:business_From.findById('s_network').getValue(),
tradeState:business_From.findById('s_tradeState').getValue(),
tradeSeqno:business_From.findById('s_tradeSeqno').getValue(),
serviceId:business_From.findById('s_serviceId').getValue()
},
callback:function(r,options,success){
if(success==false){
//alert("调用失败了");
alert(business_store.reader.jsonData.message);
Ext.MessageBox.hide();
}else{
//alert("调用趁工哦-----"+r.length);
if(r.length==0){
alert("没找到相关数据");
}else{
closeWindow();
}
Ext.MessageBox.hide();
}
}
});
其中后台的数据形如:
String json="{success:true,message:'用数据了',list:[{id:1,name:101},{id:2,name:200}]}"
另:如果是用用store.load({
params:{
p1:'fff'
}的形式 则参数的状态只能保存一下 也就是下一次请求的时候丢失了
如果要保存参数的状态则要用在load之前调用
order_ComSearch_store.baseParams={
title:order_ComSearch_From.findById('s_orderTitle').getValue()
}
})