【问题标题】:Extjs- Paging Toolbar Next Page and Previous Page DisableExtjs-分页工具栏下一页和上一页禁用
【发布时间】:2013-12-17 04:22:05
【问题描述】:

我有三个参数 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 和名称作为参数发出 ajax 请求(这正是我在侦听器上方的按钮所做的)

我的商店如下所示:

自动加载:假, 远程过滤器:真, 缓冲:假, 页面大小: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()});
    }
}

任何形式的帮助对我来说都很有价值。提前致谢。

【问题讨论】:

    标签: ajax extjs4 httpresponse pagingtoolbar


    【解决方案1】:

    而不是 Ajax 请求。我应该使用

    store.load(params{你的参数})

    对于下一页和上一页,我使用了自定义参数的 beforeload 监听器。

    【讨论】:

    • 你能举一个你的听众的例子吗?我也有类似的问题
    • 嗨 Clay,你能告诉我你遇到了什么问题吗?你所说的听众到底是什么意思?
    • 用户好,感谢您的快速回复。基本上我有一个从 JSON 响应加载的网格,但不会限制 pageSize。我在这里有一个详细的问题:stackoverflow.com/questions/22481633/…
    • 当我使用缓冲网格时,pageSize 似乎可以工作,但我想使用pagingToolbar
    • 分页应该由服务器处理,UI 在每个页面中提供了它需要的项目范围。您的服务器是否处理分页?
    猜你喜欢
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    相关资源
    最近更新 更多