关于dorado的动态加载列

1 篇文章 0 订阅
1 篇文章 0 订阅

根据登录用户的不同对表格的列做不同的排序,比如表格有id列、name列和age列,那么用户a比较喜欢看name列那么name列在页面加载好之后自动放到第一列,用户b喜欢看age列那么,用户b 进入页面的话,自动把age列放到第一位。

具体实现:
首先需要定义一张表,表信息需要包含:表格id,用户名,表格列的顺序。
表格id唯一确定的一张表,要唯一。
比如

表格id用户名列顺序
gridaname,id,age
gridbage,id,name

然后继承父类GenericObjectListener监听器,

@Component("userGridListener")
public class UserGridListener extends GenericObjectListener<DataGrid> {

	static String sortColumns = "email_," +
			"ename_," +
			"administrator_," +
			"mobile_," +
			"cname_," +
			"company_id_," +
			"create_date_," +
			"username_," +
			"enabled_," +
			"address_," +
			"male_," +
			"birthday_";

	@Override
	public boolean beforeInit(DataGrid dataGrid) throws Exception {
		return true;
	}

	@Override
	public void onInit(DataGrid grid) throws Exception {
		List<Column> columns = grid.getColumns();
		Column [] columnsArray = new Column[columns.size()];
		String loginUserName = ContextHolder.getLoginUserName();
		//todo 根据用户名查询对应的列的顺序
		//sortColumns是查询出来的列顺序
		String[] split = sortColumns.split(",");
		for (int i = 0;i<split.length;i++) {
			String s = split[i];
			for (Column column:columns) {
				if (column.getName().equals(s)) {
					columnsArray[i] = column;
					break;
				}
			}
		}
		columns.clear();
		columns.addAll(Arrays.asList(columnsArray));
	}

}

最后配置表格属性listener:
在这里插入图片描述

效果:
没有排序之前:
在这里插入图片描述

排序之后:
在这里插入图片描述
demo地址:https://github.com/294033186/bdf2-project
参考链接:http://wiki.bsdn.org/pages/viewpage.action?pageId=7897097

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值