工作日常经验(一)Layui框架之弹窗动态列表默认选中已选中项的方法

Layui框架之弹窗动态列表默认选中已选中项的方法

重新进入弹窗页后默认选中已选择项目

本人的公司前端一直在用Layui前端框架,所以一直在研究基于Layui框架的前端页面编写方法。前段时间做的项目中遇到一个问题:在一个弹窗中点击“检查事项”选择,选择检查事项后返回父页面,当需要继续添加事项后重新加点击进入页面。此时需默认选择刚才已选择的事项。具体实现方法如下:
前台:

// 弹窗页面列表回显
var tableIns = table.render({
        elem: '#topic',
        url: '/访问后台路径',
        cellMinWidth: 95,
        page: true,
        height: "full-100",
        limit: 20,
        limits: [10, 20, 30],
        id: "topic",
        method: 'post',
        cols: [[
            {type: "checkbox", fixed: "left", width: 50},
            {field: 'id', title: '主键',hide:true, align: 'center'},
            {field: 'tdName', title: '名录名称', align: 'center'},
            {field: 'empStr', title: '部门', align: 'center'},
            {field: 'tdTypeValue', title: '类别', align: 'center'},
            {field: 'containSubject', title: '包含主体', align: 'center'},
            ]],
            //此处即为判断是否为已选中项
        parseData: function(res){ //res 即为原始返回的数据
            for(var i=0; i<res.data.length; i++){
                if(res.data[i].checked==1){
                    //默认选中状态
                    res.data[i].LAY_CHECKED=true;
                }
            }
            return {
                "code": res.code, //解析接口状态
                "msg": res.msg, //解析提示文本
                "count": res.count, //解析数据长度
                "data": res.data //解析数据列表
            };
        }
    });

后台:
实体类中需添加一条是否默认选中字段,此处我添加了枚举类

/**回显选中**/
    @Transient
    private int checked = CheckItemEnums.CheckedEnum.NO.getChecked();

控制层进行判断:
主要原理就是获取前台传回的id字符串,之后进行判断,如果为选中项,则给选中项checked字段赋予选中值;

//回显上次选中
			String bodyIds = request.getParameter("bodyIds");
			String[] split = bodyIds.split(",");
			if (split[0]!=""){
				List<TopicDirectory> list = 
					new ArrayList<TopicDirectory>();
				for (int i=0;i<split.length;i++){
					TopicDirectory topicOne = 
						this.service.getTopicDirectoryOne(Integer.parseInt(split[i]));
					list.add(topicOne);
				}
				if (list != null && list.size() > 0){
					for (int i=0;i<ret.getData().size();i++){
						for (int e=0;e<list.size();e++){
							Integer id = ret.getData().get(i).getId();
							Integer id1 = list.get(e).getId();
							if (id - id1==0){
								ret.getData().get(i).setChecked(CheckItemEnums.CheckedEnum.YES.getChecked());
							}
						}
					}
				}
			}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值