列表动态列处理

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) {

}