iO!我知道这个问题已经被问了很多次了,但我仍然不知道我的问题来自哪里。我只是想从PostGreSQL数据库加载数据,并将其显示在ExtJS网格中。
我的商店:
var getreports = Ext.create('Ext.data.JsonStore', {
// store configs
autoDestroy: true,
proxy: {
type: 'ajax',
url: 'http://129.129.129.15:81/getlistreports',
reader: {
type: 'json',
idProperty: 'id_consult',
totalProperty: 'total'
}
},
remoteSort: false,
pageSize: 50,
});
我的网格(嵌入边界布局中):
{
region: 'center',
//xtype: 'container',
items: [
Ext.create('Ext.grid.Panel', {
features: [filters],
store: getreports,
emptyText: 'Aucune donnée n'a été trouvée',
columns: [
{
text: 'Nom',
dataIndex: 'id_consult',
filter:
{
type: 'string',
},
},
{
text: 'génération',
dataIndex: 'typeentity',
flex: 1,
filter:
{
type: 'string',
},
},
{
text: 'Etat',
dataIndex: 'typeref',
filter:
{
type: 'list',
},
},
]
}),
]
},
以及它应该读取的JSON。我已经让监听器在控制台日志中显示AJAX调用的内容,它显示了一些内容,所以我想问题不是来自它
[{"id_consult":"1","typeref":"Territorial","typeentity":"BH"},
{"id_consult":"2","typeref":"Territorial","typeentity":"BOOS"},
{"id_consult":"3","typeref":"Territorial","typeentity":"BOB"}]
最后:
getreports.load();
在功能结束时
加载页面时,它会显示加载"弹出窗口",但随后什么也不显示,并向我显示我声明的EmptyText
还要注意,当我在网格内声明存储时,过滤器不起作用(如果我删除它,我可以看到它们)
有什么建议吗:)?
您的列定义一团糟(后面有很多逗号),但这最终不是问题所在。网格没有加载任何数据,因为存储在加载数据后没有创建任何记录。您需要将fields
配置添加到商店定义中,或者创建可应用于商店的model
定义。一旦你这样做,你会发现它是有效的(见下面链接的例子)
fields: ['id_consult', 'typeref', 'typeentity'],
代码工作的实时示例:https://fiddle.sencha.com/#fiddle/282
我认为列的定义有误。尝试将列更改为这样的内容:
columns: [
{
header: 'Nom',
dataIndex: 'id_consult',
flex: 1
},
...
]