关于数据库字段或model中有fields的name为‘id’时,数据库中有ID字段重复(不是主键)的多条数据,但gridpanel只显示一条记录
1、问题描述:
后台返回的数据有多条,分页栏PagingToolbar显示的记录总数也正确,但gridpanel却只显示当前页的最后一条记录。
- 这是因为主键重复,字段id都为一样的,导致extjs无法找到主键,这是extjs的一个bug。 在grid的getStore的load的回调函数中,用getCount到到的是一条数据。也就是服务端返回了多条数据,但是extjs只解析了一条数据,同样,extjs也不能解析符合主键。(extjs会把id相同的所有数据当做是一条数据,返回为null,则没问题)
2、解决方案:
- 这里直接介绍鄙人常用的方法,其他的欢迎大佬补充;
1、重新设置idProperty
2、设置idProperty,避免直接使用字段名为id
Ext.define('applyPay.model.applyPayModel', {
extend: 'Ext.data.Model',
idProperty: 'id', //idProperty: 'idd',可以是不存在的
fields: [{name : , type : },{}]
});
备注:数据库中尽量不使用id作字段名称