不触发propertyChanged值更新事件的三大方法原创
14人赞赏了该文章
161次浏览
未经作者许可,禁止转载编辑于2024年12月16日 17:14:24
在有些需要联动值变化的事件中,我们希望有些值变化不触发propertyChanged事件。
如何处理:
方法一:
在赋值的时候代码如下:
.getModel().beginInit().getModel().setValue().getModel().endInit().getView().updateView()
通过该方法赋值,不会进入propertyChanged事件,也不会触发业务规则,记得最后刷新一下字段
this.getView().updateView("key"); 方法二: 不要使用this.getModel().setValue("key",value); 更改为使用 this.getModel().getDataEntity().set("key",value); this.getView().updateView("kddc_decimalfield"); 也不会触发业务规则。
方法三:beforeFieldPostBack方法中判断是否执行propertyChanged方法,如下
@Override public void beforeFieldPostBack(BeforeFieldPostBackEvent e) { TextEdit operate = (TextEdit) e.getSource(); String key = operate.getKey(); if ("kddc_textfield".equals(key)){ //业务逻辑,也可进行赋值操作 e.setCancel(true); } }
像我们在propertyChanged方法中对一个字段赋相同值,不会走两次propertyChanged方法
赞 14
14人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读