刚刚遇到一个问题就是点击下一页时候,form面板的查询条件居然丢了。
群里有朋友建议用session,唉太麻烦。后台修改到哭吧。
先看看我的代码。
/**
* The com.sharera.web.Log store definition
*/
Ext.define('Sharera.store.message.log.Log', {
extend: 'Ext.data.Store',
autoLoad: false,
autoSync: false,
fields: ['id','owner','created','channel','objectiveId','action'],
model: 'Sharera.model.message.log.Log',
baseUrl : context+'/api/log',
proxy: {
type: 'rest',
url: context+'/api/log',
pageParam:'page',
limitParam:'pageRows',
extraParams:{
'pageRows': 20,
'X-PageBase':1
},
reader : {
type : 'json',
root:'list',
totalProperty: 'total'
},
writer : {
type : 'json'
},
listeners : {
exception : function(proxy, response, operation) {
if (operation) {
Ext.Sharera.error("错误",operation.error.statusText);
} else {
// May be a proxy error...
}
}
}
},
setUrlforForm : function(id) {
if(id==undefined || id==null)
this.proxy.url = this.baseUrl;
else
this.proxy.url = this.baseUrl + "/" + id + ".json";
},
setUrlforQuery : function(name) {
if (name == null)
name = 'list/q';
this.proxy.url = this.baseUrl + "/" + name + ".json";
},
setUrlforFilter:function(type){
if(type==undefined || type==null)
this.proxy.url=context+'api/log/list/q.json';
},
setProxyType:function(type){
if(name!=null)
this.proxy.type=type;
}
});
filter中:
store.reload({
params: {
name:name,
code:code,
category:category,
sTime:startTime,
eTime:endTime
}
});
这时候问题出现了,点击下一页参数都丢了。他就改了我的page参数
修改了这:
extraParams:{
'createdFrom':'',
'createdTo':'',
'fullName':'',
'channel':'ext',
'pageRows': 20,
'X-PageBase':1
},
(上面channel是一个数组,后台需要判断,所以没有给空字符串)
和这里:
store.getProxy().extraParams = {
action :action,
fullName:userName,
channel:channel,
createdFrom:startTime,
createdTo:endTime
};
store.load();
问题搞定了。。。