LayUi的动态表格table中设置下拉框Select编辑器

相关阅读:

X-admin2.2打开页面(添加弹窗),执行成功后如何关闭弹出窗口和刷新table表格内容?

基于X-admin2.2的后台管理系统登录实现

Spring Boot+JPA微服务中数据更新问题(update)

Spring Boot集成X-admin2.2时,Layui字体图标无法正常显示或乱码问题解决方法

LayUi搜索时,如何只刷新表格内容,其他内容不变?

ZTree工具类汇总,包括:新增、编辑和删除节点,并提交后台

LayUi的动态表格Table中每个td的内容可以设置为可编辑,同时监听我需改,并提交到后台。但是表格中编辑时如果是select下拉框,则处理起来相对麻烦一些。具体各部分操作如下。 

1.单元格内容使用layui的templet功能。

如: {field:'jtcyGxmc', title: '关系名称',templet: '#selectGxmc',sort:false} 

    	
    <select name='roleId' id='roleId'  lay-filter="roleId[Select](http://www.blog2019.net/tag/Select?tagId=271)" data-value = {{d.roleId}}  lay-verify='' lay-search=''>    
        {{d.roleSelect}}
    </select>

其中select标签务必设置: lay-filter,否则修改的监听无法使用;

后端代码:

由于需要选中默认值,且在前台操作较为麻烦,故在后台进行了处理,如下所示:

@Override
public Page<User> paging(Pageable pageable, String name, Long departId) {
	Page<User> page = userRepository.findAll((root, query, builder) -> {
		Predicate predicate = builder.conjunction();
		if (com.tdata.bplatform.utils.String.StringUtils.isNotBlank(name)) {
			predicate.getExpressions().add(builder.like(root.get("username"), "%" + name + "%"));
		}
		if (com.tdata.bplatform.utils.String.StringUtils.isNotBlank(departId)) {
			predicate.getExpressions().add(builder.equal(root.get("departId"), departId));
		}
		query.orderBy(builder.desc(root.get("lastLogin")));
		return predicate;
	}, pageable);

	List<User> rets = new ArrayList<>();
	page.getContent().forEach(n -> rets.add(n));
	List<Role> roleList = roleRepository.findAll();
	List<User> users = page.getContent();
	users.forEach(item -> {
		for (Role role : roleList) {
			if (com.tdata.bplatform.utils.String.StringUtils.isNotBlank(item.getRoleId())
					&& role.getId() == item.getRoleId().longValue()) {
				item.setRole(role);
				if (com.tdata.bplatform.utils.String.StringUtils.isNotBlank(item.getRoleId())) {
                //处理前端select中的option对象,并设置默认值;
					item.setRoleSelect(getRoleSelect(roleList, item.getRoleId()));
				}
				break;
			}
		}
	});
	return new PageImpl<>(rets, pageable, page.getTotalElements());
}

/**
 * 根据roleID设置默认选择,以及构造option值;
 * 
 * @2020年6月7日 下午5:52:50
 *
 * @Title: getRoleSelect
 * 
 * @Description: TODO(这里用一句话描述这个方法的作用)
 * 
 * @param @param roleList
 * 
 * @param @param roleId
 * 
 * @return String 返回类型
 * 
 * @throws
 */
public String getRoleSelect(List<Role> roleList, Long roleId) {
	String str = "";
	for (Role role : roleList) {
		str += "<option value=\"" + role.getId() + "\" "
				+ (role.getId() == roleId.longValue() ? "selected=\"selected\"" : "") + " > " + role.getRoleName()
				+ "</option> ";
	}
	System.out.println(str);
	return str;
}

2.然后单元格内容就变成了可编辑的下拉框。

3.由于默认样式有些问题,需要调整下样式。

/* 防止下拉框的下拉列表被隐藏---必须设置--- */        
.layui-table-cell {            
    overflow: visible !important;        
} 
/* 使得下拉框与单元格刚好合适 */       
td .layui-form-select{	
    margin-top: -10px;	
    margin-left: -15px;	
    margin-right: -15px;
}

4.模板代码中给select标签增加data-属性,用于保存对象的id值。下拉框选择时会触发以下代码

	//下拉框监听事件
	form.on('select(roleIdSelect)', function(data) {
		//获取行tr对象
		var elem = data.othis.parents('tr');
        //获取第一列的值,第一列为ID列,
		var id = elem.first().find('td').eq(1).text();
        //选择的select对象值;
        var selectValue=data.value;
		//处理字段更新的逻辑
	});

#Select #LayUi #X-admin2.2

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
Layui是一种基于layui框架的前端UI库,可以方便地在网页创建动态表格和下框等组件。 使用Layui动态表格带搜索的下框,首先需要引入LayUI的相关文件,如layui.css、layui.js等。然后,在HTML定义一个表格容器,可以使用div标签,并给它一个id,方便后续的操作。 接下来,在JavaScript通过Layuitable模块进行表格的初始化和渲染。我们可以使用table.render()方法,传入一些参数来定义表格的样式、列属性以及数据源等。在其的cols配置项,我们可以定义表格的列,包括列头名称、字段名、宽度等信息。此时,我们可以在列的属性增加一个toolbar属性,来定义表格的工具栏。 其的toolbar可以是一个函数,用于渲染每一行的工具栏内容。我们可以在这个函数创建一个下框,通过Layui的form模块进行渲染和监听。我们可以使用form.on()方法来监听下框的选事件,并在监听函数处理相应的逻辑。 在表格,我们可以使用formSelects组件,它是一个基于Layui的多选、搜索等功能的下框插件。我们可以通过定义一个元素的class为select,然后使用formSelects.render()方法来渲染下框。可以定义一些参数,例如最多可选的数量、搜索框的位置等。 总结来说,要使用Layui动态表格带搜索的下框,我们需要引入Layui的相关文件,然后在HTML定义表格容器,并在JavaScript使用Layuitable模块进行表格的初始化和渲染。在列属性,我们可以添加一个toolbar属性来定义行的工具栏。可以使用form.on()方法监听下框的选事件,并在监听函数处理逻辑。同时,也可以使用formSelects组件来实现多选、搜索等功能的下框。通过这些步骤,我们可以方便地实现Layui动态表格带搜索的下框的使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十点数据

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值