列表动态列处理
1、在initialize()方法里,获取列表控件,添加CreateListColumnsListener监听
public void initialize(){
BillList billlist=(BillList)this.getControl("billlistap");
billlist.addCreateListColumnsListener(this::beforeCreateListColumns);
}
2、重写beforeCreateListColumns方法
public void beforeCreateListColumns(BeforeCreateListColumnsArgs e) {
List<IListColumn> existsList = e.getListColumns();//元数据已经存在的列
List<IListColumn> list = ListConfigUtil.getListColumn(getListConfig());//需要增加的动态列
existsList.addAll(list);//动态列增加到已有列里
e.setListColumns(newList);//重置已有列信息
}
3、在beforePackageData(BeforePackageDataEvent e) 方法查询出动态列数据,把数据构成成json数据,并放在全局变量,并存放到缓存数据
getPageCache().put("cachedata", bodyMap.toJSONString());
4、在packageData方法,取出全局变量数据,如果为空,则从缓存中取数,然后显示数据
public void packageData(PackageDataEvent e) {
}