我有三个参数 startdate、enddate 和 name,我必须将它们发送到服务器以获取 Json 响应。我在 GridPanel 中显示响应。
我的 Ajax 请求如下所示:
FilterOperSet: function(button){
var win = button.up('window');
var form = win.down('form');
var start = form.getForm().findField('startDate').getSubmitValue();
var end = form.getForm().findField('endDate').getSubmitValue();
var act = form.getForm().findField('actor').getSubmitValue();
Ext.Ajax.request({
url: 'ListData',
params: { type: 'recordedRequest', startDate: start,
endDate: end, actor: act, start:0,limit:10 },
success: function(response) {
var json = Ext.decode(response.responseText);
var mystore = Ext.data.StoreManager.lookup('RecordedRequestStore');
mystore.loadData(json.recordedRequests);
},
scope: this});
}
我有一个按钮,当用户输入 startdate、enddate 和 name 的值并单击按钮时,上面的侦听器将它们作为参数发送,以及分页和响应的开始和限制被捕获并存储在网格面板中。
我的分页工具栏问题是:我可以看到以下响应
recordedRequests
// has some meta data here
success
true
total
1339
但是我的分页工具栏只显示一页,底部显示 0 of 0,右侧没有显示。事实上它应该说 1 of 14 并且应该允许我浏览下一页。
2)此外,当我单击刷新按钮时,它会调用我的商店并调用服务器,但我想使用 startdate、enddate 和 name 作为参数发出 ajax 请求(这正是我在侦听器上方的按钮所做的)
我的商店如下所示:
autoLoad: false, remoteFilter: true, buffered: false, pageSize: 10, //leadingBufferZone: 1000,
fields:['start', 'end', 'actor','serviceOp'],
proxy: {
type: 'ajax',
url: 'ListData',
store: 'RecordedRequestStore',
startParam:'start',
limitParam:'limit',
pageParam:'page',
reader: {
type: 'json',
root: 'recordedRequests',
successProperty: 'success',
totalProperty: 'total'
},
extraParams: {
'type': 'recordedRequest',
},
//sends single sort as multi parameter
simpleSortMode: true,
// Parameter name to send filtering information in
filterParam: 'query',
// The PHP script just use query=<whatever>
encodeFilters: function(filters) {
return filters[0].value;
}
},
listeners: {
filterchange: function(store, filters, options){
console.log( filters )
},
totalcountchange: function() {
console.log('update count: ')
//this.down('#status').update({count: store.getTotalCount()});
}
}
任何形式的帮助对我来说都很有价值。提前致谢。