2

我想在我的简单网格面板中实现网格缓冲区渲染器,它使用 ExtJS 4.2.1 显示信息列表。不使用 bufferrenderer 插件,它会显示所有数据,但是当我使用这个插件时,我的网格不包含任何数据。

这是我没有使用插件的网格

在此处输入图像描述

这是我使用插件的网格

在此处输入图像描述

网格面板的代码是:

Ext.define('MyApp.view.MyPanel', {
extend: 'Ext.panel.Panel',
itemId: 'myPanel',
title: '',
requires: ['Ext.grid.plugin.BufferedRenderer'],
initComponent: function() {
    var me = this;
    Ext.applyIf(me, {
        items: [
            {
                xtype: 'gridpanel',
                autoRender: true,
                autoShow: true,
                itemId: 'gridPanel',
                title: 'My Grid Panel',
                store: 'MyJsonStore',
                columns: [
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'id',
                        text: 'Id'
                    },
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'firstName',
                        text: 'FirstName'
                    },
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'middleName',
                        text: 'MiddleName'
                    },
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'lastName',
                        text: 'LastName'
                    },
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'age',
                        text: 'Age'
                    },
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'country',
                        text: 'Country'
                    },
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'city',
                        text: 'City'
                    },
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'street',
                        text: 'Street'
                    },
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'mobile',
                        text: 'Mobile'
                    },
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'phone',
                        text: 'Phone'
                    },
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'zip',
                        text: 'Zip'
                    }
                ],
                plugins: 'bufferedrenderer'
                /*plugins:  {
                    ptype: 'bufferedrenderer',
                    trailingBufferZone: 20,  
                    leadingBufferZone: 25  
                }*/
            }
        ]
    });

    me.callParent(arguments);
}

});

商店的代码是:

Ext.define('MyApp.store.MyJsonStore', {
extend: 'Ext.data.Store',

requires: [
    'MyApp.model.GridModel'
],

constructor: function(cfg) {
    var me = this;
    cfg = cfg || {};
    me.callParent([Ext.apply({
        autoLoad: true,
        model: 'MyApp.model.GridModel',
        storeId: 'MyJsonStore',
        buffered: true,
        clearOnPageLoad: false,
        clearRemovedOnLoad: false,
        leadingBufferZone: 25,
        pageSize: 500,
        purgePageCount: 10,
        trailingBufferZone: 20,
        proxy: {
            type: 'ajax',
            url: 'data/users.json',
            reader: {
                type: 'json',
                root: 'users',
                totalProperty: 'total_user'
            }
        }
    }, cfg)]);
}
});

谁能帮我这个?谢谢

4

2 回答 2

2

在网格中设置 height 属性将解决此问题。

身高:300

于 2013-10-02T09:38:25.550 回答
1

确保直到视口的所有面板都将其布局设置为“适合”。此外,网格的区域应该是“中心”。

我还没有测试过,但是这样的东西应该可以工作:

var grid = Ext.create('MyApp.view.MyPanel', {
     layout: 'fit',
     region: 'center'
     });
var viewport = Ext.create('Ext.container.Viewport', {
        renderTo: Ext.getBody(),
        items: [
            grid
            ]
        });
于 2014-01-02T17:23:40.827 回答