ExtJS无限网格中的一百万行(奇怪的效果)

时间:2013-03-31 17:33:03

标签: extjs

我使用ExtJS infinite grid this example创建了一个应用程序。

我的应用程序从数据库接收数据。

它与少量行(100000)完美配合。

但现在一个数据库包含一百万行。我发现了一个奇怪的效果:数据没有完全加载。每次网格显示不同的行数(最大859176)。但我需要从数据库加载所有行。

有人知道如何解决这个问题吗?

我的代码:

Ext.require ([
    'Ext.grid.*',
    'Ext.data.*',
    'Ext.util.*',
    'Ext.grid.plugin.BufferedRenderer'
]);

Ext.onReady(function () {

    Ext.define('DoctorsList', {
        extend: 'Ext.data.Model',
        fields: [
            'id', 'fio', 'specialization', 'photo'
        ],
        idProperty: 'id'
    });

    var store = Ext.create('Ext.data.Store', {
        id: 'store',
        model: 'DoctorsList',
        buffered: true,
        pageSize: 100,
        proxy: {
            type: 'ajax',
            url: 'get_doctors.jsp',
            reader: {
                root: 'data',
                totalProperty: 'total'
            }
        },
        autoLoad: true
    });

    Ext.create('Ext.grid.Panel', {
        height: 600,
        title: 'Doctor\'s list',
        collapsible: true,
        store: store,
        columns: [
        {
            text: 'ID',
            dataIndex: 'id',
            width: 50,
            sortable: true
        },
        {
            text: 'Full name',
            dataIndex: 'fio',
            width: 300,
            sortable: true
        },
        {
            text: 'Specialization',
            dataIndex: 'specialization',
            width: 150,
            sortable: true
        },
        {
            text: 'Photo',
            dataIndex: 'photo',
            width: 100,
            sortable: false,
            renderer: function(value) {
                return '<img width="100" src="images/' + value + '" />';
            }
        }
        ],
        renderTo: 'doctors-list'
    });

});

此外:

Here您可以看到对get_doctors.jsp的上一次请求和响应。您可以注意到,字段“total”的编号为1005000,但最后一行的编号为423165. here是MS SQL数据库选择的屏幕。你可以看到那里使用的表总共有1005000行。

附加2: 此错误出现在Firefox和IE8中,但它不会出现在Opera,Google Chrome和Safari中。

谢谢!

0 个答案:

没有答案