Extjs-分页工具栏下一页和上一页禁用

时间:2013-12-13 20:22:47

标签: ajax extjs4 httpresponse pagingtoolbar

我有三个参数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的值并点击按钮时,上面的监听器将它们作为参数发送,并启动和限制分页和响应被捕获并存储在gridpanel中。

分页工具栏的问题是:我可以看到以下内容作为回复

recordedRequests
     // has some meta data here 

success
true

total
1339

但我的分页工具栏只显示一个页面,底部显示0的0,右侧显示没有任何内容。事实上它应该是14个中的1个,并且应该允许我浏览下一页。

2)当我点击刷新按钮时,它调用我的商店并调用服务器,但我想用startdate,enddate和name作为参数发出一个ajax请求(这正是listerner上面的按钮)

我的商店看起来像这样:

autoLoad:false,     remoteFilter:true,     缓冲: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()});
    }
}

任何形式的帮助都对我有很大的价值。在此先感谢。

1 个答案:

答案 0 :(得分:0)

而不是Ajax请求。我应该用

store.load(params {your params})

对于nextpage和previouspage,我使用了beforeload listener来获取自定义参数。