f7-值保存后不显示

1.问题描述

F7设置显示格式为name+isoCode,f7选值后可以正常显示,保存后isoCode的值无法显示

表格必输配置

表格必输配置

表格必输配置

2.问题解决

为节约性能在编辑页面加载model时,如果是f7组件则仅查f7对象中部分常用字段,其他字段并没有查询所以导致保存后部分字段无值(例如本例isoCode),但是框架提供了对应的事件可以用来扩展,该事件可用于查询其他的一些字段

2.1 配置页面中添加modelFiledSelector的后台功能:

表格必输配置

2.2 在对应的handler中添加额外的查询字段:

    package com.kingdee.eas.customer;

	import com.kingdee.bos.eventbus.event.model.IModelFieldSelectorEventHandler;
	import com.kingdee.bos.eventbus.event.model.ModelFieldSelectorEvent;
	import com.kingdee.bos.metadata.entity.SelectorItemCollection;
	import com.kingdee.bos.metadata.entity.SelectorItemInfo;
	import com.kingdee.bos.webframework.dynamic.handler.AbstractWebEventHandler;

	public class ModelFieldSelectorHandler extends AbstractWebEventHandler implements IModelFieldSelectorEventHandler {
		@Override
		public void onFieldSelect(ModelFieldSelectorEvent event) {
			SelectorItemCollection sic = event.getSelectorItemCollection();
			//currency是币别的字段名,isoCode是币别f7对象下的字段
			sic.add(new SelectorItemInfo("currency.isoCode"));
			event.setSelectorItemCollection(sic);
		}
	}

相关样例