我使用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中。
谢谢!