extjs4关于proxy中设置idProperty,后store增加数据不能sync()的问题

今天遇到一个很奇怪的问题,form新增一条记录后,产生一个model,然后加到store中提交


var model = Ext.create('Model‘, form.getForm().getValues());

grid.store.add(model);

grid.store.sync();


store.sync()怎么样都不执行,看了例子都是对的,后来查了不少东西总算明白了原来是

model.phantom 这个属性,要设置为true,表示此数据在服务器上没有,只在客户端有,那么为什么新建的model的

model.phantom 为false呢,是因为新增的时候如果 model.idProperty 设置的字段如果有值的话,ext 就认为这条数据

在服务器端已经有了,就不会去更新了。

    但是idProperty 不设置又会有新的问题 即是grid 选中了一条,在刷新过后,选中的那么会失去选中状态。


   最终解决办法,

var model = Ext.create('Model‘, form.getForm().getValues())

model.phantom =true;

form.modulegrid.store.add(model);

form.modulegrid.store.sync();


这样就解决问题了,因此设计数据库的时候最好用一个自增量字段作为主键,就无此问题,但是有些主键是要自己定义的,就会产生这个问题  


原文地址:http://blog.csdn.net/jfok/article/details/9026343

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值