PropertyChange事件更新值处理原创
金蝶云社区-曾钊成
曾钊成
0人赞赏了该文章 323次浏览 未经作者许可,禁止转载编辑于2024年01月12日 13:33:30

PropertyChange事件中存在更新值的场景,如果使用getmodel.setValue方式会再次触发PropertyChange,针对这种场景有几种方式可以解决。

方式一:

使用 this.getModel().initValue方式赋值

方式二:

更新数据包的方式处理

DynamicObject data = this.getModel().getDataEntity(true); 

data .set("field",null);

方式三:

使用页面缓存pageCache设置标志位解决,当触发PropertyChange时判断标志位

方式四:

使用属性方法setValueFast方式赋值

DynamicObject dataEntity = this.getModel().getDataEntity();             

IDataEntityType dataEntityType = dataEntity.getDataEntityType();

DataEntityPropertyCollection properties = dataEntityType.getProperties();

properties.get("entity").setValueFast(dataEntity,null);

赞 0