EAS中F7控件监听变化后,手动修改带出值无效

案例问题分析

在这里插入图片描述

如图,案例需要开发选择“项目经理”自动获取其对应项目的名称设置到“项目”字段。

假设用户选择了“张三”系统自动带出对应的项目名称“XX公司HR实施”,然后用户修改项目为“XX公司OA开发”,然后保存关闭单据,但是用户下次再打开查看单据时,项目仍然会是“XX公司HR实施”,和数据库里的不一致。

原因分析

a)系统从数据库获取单据对象,按照EditUI的绑定规则把值对象的数据绑定到控件上
b)首先为文本字段设置值,此时:项目=XX公司OA开发
c)然后为项目经理F7设置值,此时触发了DataChangeListener,项目被重新设置成了“XX公司HR实施”

解决办法

    protected DataChangeListener prmtManageListener;
    public ProjectPlanEditUI() throws Exception
    {
        super();
        prmtManageListener = new DataChangeListener(){
			public void dataChanged(DataChangeEvent ev)
			{
				prmtManagerChanged((PersonInfo) ev.getNewValue());
			}
		};
    }
    public void loadFields()
    {
    		prmtmanager.removeDataChangeListener(prmtManageListener);
        super.loadFields();
        prmtmanager.addDataChangeListener(prmtManageListener);
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值