Extjs 是否有办法在模型中重命名自动生成的;id";财产?

Extjs 是否有办法在模型中重命名自动生成的;id";财产?,extjs,extjs4,extjs5,Extjs,Extjs4,Extjs5,我有一个网格,通过向商店添加项目或通过服务器接收现有项目来填充该网格。 情况就是这样: 1-users adds new items to the grid by gui. 2-users can send new items to the server by pressing a "send" button. 每个项目都有一个“id”属性,无论如何,对于新创建的项目,id始终为0,而对于现有项目(即由服务器发送的项目),id是不同的 这导致了以下场景:当添加新项时,extjs仅在没有其他具有

我有一个网格,通过向商店添加项目或通过服务器接收现有项目来填充该网格。 情况就是这样:

1-users adds new items to the grid by gui.
2-users can send new items to the server by pressing a "send" button.
每个项目都有一个“id”属性,无论如何,对于新创建的项目,id始终为0,而对于现有项目(即由服务器发送的项目),id是不同的

这导致了以下场景:当添加新项时,extjs仅在没有其他具有相同id的项时才接受它……在我的情况下,这是一个问题,因为可能有多行具有相同id(0)

有没有办法解决这个问题?有没有办法让extjs以另一种方式调用它的“id”属性,这样它就不会与我的“id”属性冲突

编辑:

通过将模型中的idProperty值设置为另一个字段部分解决:

idProperty: extid
不管怎么说,困扰我的是如果我

store.getAt(i).getData()

我仍然在生成的json中获得“extid”属性……我不想将此字段发送到我的服务器。

无论如何,不要为新项目分配任何ID。Ext将这些记录标记为幻影,并将它们作为新添加的记录发送到服务器。服务器分配ID并将其发送回Ext。Ext分配这些服务器创建的ID,并且记录不再是新的

当您在添加新项时说
时一定有误解,extjs仅在没有其他具有相同id的项时才接受它。在我的情况下,这是一个问题,因为可能有多行具有相同id

在ExtJs中,新创建的行的
id
始终为零。这是故意的。现在有一个问题是,有多行id为0的
id
。ExtJs将id=0的行视为尚未保存到服务器的行

当任何数据库工作时,新行的自动递增的
id
将在您将该行插入数据库时定义。ExtJs希望表中的id列是一个自动递增的id,因此,它希望服务器使用现在定义的id将该行发送回客户端


这就是后端的工作方式。如果没有,您将很难让它与ExtJs很好地协同工作。我们不要求您改变服务器的行为ExtJs要求服务器按预期运行。

从您的应用商店向服务器发送数据时使用的是什么?例如,您是否设置了写入程序?不,我只是调用Ext.Ajax,用getData()传递模型的数据。这不是答案……您要求我改变服务器的行为(id=0-->新记录),这是答案。ExtJs需要来自服务器的一些行为。