首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示所有记录的分页网格- Ext

显示所有记录的分页网格- Ext
EN

Stack Overflow用户
提问于 2014-03-18 13:59:49
回答 2查看 5K关注 0票数 2

编辑

事实证明,商店不能有重复的It。当我删除这个字段时,所有记录都会显示--这意味着网格不尊重pageSize

我有一个问题,让我所有的商店记录显示在我的网格。数据正在从JSON请求中适当地返回,页面工具栏的行为也是正确的。

这是我的店:

代码语言:javascript
复制
var store = Ext.create('Ext.data.Store', {
                    storeId     : 'resultsetstore',
                    autoLoad    : false,
                    model       : model,
                    pageSize    : itemsPerPage, // 3
                    proxy: {
                        type    : 'ajaxwithpayload', //custom ajax proxy to read 'jsonData'
                        url     : 'MCApp',
                        jsonData: searchquery,
                        reader: {
                            type    : 'json',
                            root    : 'elements'
                        } 
                    }

});

我在这里加载存储,并返回所有正确的结果:

代码语言:javascript
复制
store.load({ 
                params: { start: 0, limit: itemsPerPage },
                callback : function(records, operation, success) {
                    if(success) {
                        mainresponse = operation.response.responseText;
                        if( mainresponse.length == 0 ){
                            alert('No results returned');
                            return;
                        }
                        var jsonResponse = Ext.JSON.decode(mainresponse);
                    }
                    else {
                        alert('Search Failed: Could not reach the server');
                    }

最后,使用pagingtoolbar实现了一个简单的网格

代码语言:javascript
复制
var grid = Ext.create('Ext.grid.Panel', {
        title: 'Test Data',
        store: store,
        columns: [{
            text: 'Technical Name',
            dataIndex: 'tech'
        }, {
            text: 'ID',
            dataIndex: 'element.id'
        }, {
            text: 'Name',
            dataIndex: 'name',
            mapping: 'element.name'
        }, {
            text: 'View',
            dataIndex: 'view'
        }, {
            text: 'Description',
            dataIndex: 'description'
        }],
       dockedItems: [{
            xtype: 'pagingtoolbar',
            store: store,
            pageSize: itemsPerPage,
            dock: 'bottom',
            displayInfo: true
        }],
        renderTo: Ext.getBody()
    }); 

这里的问题是,并不是所有的结果都加载到网格中。似乎当遇到一个重复的ID时,它会缩短结果。这可能不是问题,只是我的猜测

在日志中,我看到了我需要返回的所有数据。在下面的图片中,我应该让3行具有相同的Element ID 001,但是只显示一行:

另外要注意的是,当我单击页面工具栏上的下一个按钮时,结果不会改变,它还会在我的控制台上读取为POST。我不确定它是该这么做还是做GET

我用闪电向大家展示了令人震惊的--这是不起作用的

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-18 16:39:22

需要注意的是,服务器负责分页,而不是ExtJS。服务器不能返回所有行,而只能返回当前页的行。在使客户端工作时,服务器端代码必须考虑参数pagestartlimit

我认为,除了重复的ids,是您的问题的主要原因。这尤其是为什么在第一页和第二页上看到相同的数据的原因:

ExtJs向服务器请求第1页的数据,并获取所有行。稍后,ExtJs向服务器请求第2页的数据,并再次获取相同的行。这行不通。

票数 2
EN

Stack Overflow用户

发布于 2015-12-02 10:00:53

当您在Model的字段数组中将name属性指定为"id“时,可能会出现这种情况。试着改变这种状况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22481633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档