layui table内嵌入select

layui数据表格没有支持select的参数,因此需要手动加入模板进去到td中,具体使用方法如下

HTML
<script type="text/html" id="selectTool">
		 <select name="materialtype" lay-filter="materialtype" id="materialtype">
					<option value="">请选择或输入</option>
		        {{# layui.each(d.lstSet, function(index, item){ }}
					<option value="{{ item.SettingKey }}">{{ item.SettingValue }}</option>
		        {{# }); }}
		    </select>
</script>

其中:d.lstSet是后台传表格数据时带入的一个数组。
关于{{#等字符是layui的模板引擎,参考地址:https://www.layui.com/doc/modules/laytpl.html
如果使用了数据表格layui-table则不要自定义分隔符,会乱码

JS
function getMateralNameList() {
			var re = table.render({
				elem: '#material-name-list',
				url: materialNameListUrl,
				cellMinWidth: 80,
				// width: '150px',
				id: 'tongMaterialinfoID',
				height: '400px',
				toolbar: '#toolbarAdd', //开启头部工具栏,并为其绑定左侧模板
				defaultToolbar: [], //去掉打印等功能
				end: function(e) {
					form.render();
				},
				done: function(res) {
					form.render('select');
					tongMaterialNameData = res.data;
					setTimeout(function(){
						tongMaterialNameData.forEach(function(item, index) { //根据已有的值回填下拉框
							layui.each(o("select[name='materialtype']", ""), function(index, item) {
								var elem = o(item);
								elem.next().children().children()[0].defaultValue = tongMaterialNameData[index].MaterialName;
							});
							table.render('select');
						})
					},1000)
				},
				cols: [
					[{
							field: 'No',
							title: 'No',
							type: 'numbers',
							width: 40,
						}]
				]
			});
		}
		//select改变对应的表格数据里面的值也要改变
		form.on('select(materialtypeFilter)', function(data) {
			//获取当前行tr对象
			var elem = data.othis.parents('tr');
			//第一列的值是Guid,取guid来判断
			var Guid = elem.first().find('td').eq(0).text();
			//选择的select对象值;
			var selectValue = data.value;
			for (i = 0; i < tongMaterialNameData.length; i++) {
				if (tongMaterialNameData[i].ID == Guid) {
					tongMaterialNameData[i].MaterialType = selectValue; //更新被修改的行数据
				}
			}
		})
CSS
/* 防止下拉框的下拉列表被隐藏---必须设置--- 此样式和表格的样式有冲突  */
/* 防止下拉框的下拉列表被隐藏---必须设置--- 此样式和表格的样式有冲突 
如果表格列数太多 会出现错乱的情况 目前我的解决方法是忽略下拉框的美化渲染 <select lay-ignore> */
#tongConfig #materialNameList .layui-table-cell {
	overflow: visible;
}
#tongConfig #materialNameList .layui-table-box {
	overflow: visible;
}

#tongConfig #materialNameList .layui-table-body {
	overflow: visible;
}

/* 设置下拉框的高度与表格单元相同 */
#tongConfig #materialNameList td .layui-form-select {
	margin-top: -10px;
	margin-left: -15px;
	margin-right: -15px;
}

#tongConfig #materialNameList .layui-table-view .layui-table th{
        overflow:hidden;
}
/* 去掉select td的悬浮下拉框 */
#tongConfig #materialNameList .layui-table-grid-down{
	display: none;
}

上面的仅供参考,使用时定位到自己table的地方

### 回答1: layui 是一个前端框架,它提供了很多组件,其中包括数据表格。 你可以使用 layui 的数据表格组件来展示数据,并且可以在表格内编辑内容。 使用方法: 1. 在你的 HTML 文件中引入 layui 的 CSS 和 JavaScript 文件。 2. 在你的 HTML 中创建一个数据表格,并使用 layui 的表格模板。 3. 在 JavaScript 中配置表格的参数,包括数据源、列名、每列的编辑选项等。 4. 在 JavaScript 中调用 layui 的表格渲染方法,渲染出表格。 例如: HTML: ``` <table id="table"></table> ``` JavaScript: ``` layui.use(['table', 'form'], function(){ var table = layui.table; var form = layui.form; table.render({ elem: '#table', url: '/demo/table/user/', cols: [[ {field:'id', title: 'ID', edit: 'text'}, {field:'username', title: '用户名', edit: 'text'}, {field:'sex', title: '性别', edit: 'text'}, {field:'city', title: '城市', edit: 'text'}, {field:'sign', title: '签名', edit: 'text'}, {field:'experience', title: '积分', edit: 'text'}, {field:'score', title: '评分', edit: 'text'}, {field:'classify', title: '职业', edit: 'text'}, {field:'wealth', title: '财富', edit: 'text'}, {field:'right', title: '操作', toolbar: '#toolbar'} ]] }); }); ``` 在这个例子中,我们使用了 layui 的表格渲染方法 `table.render` 来渲染表格,并在 `cols` 参数中指 ### 回答2: layui 数据表格是一款基于layui框架开发的强大的数据表格组件,可以方便地实现对表格数据的编辑功能。 在使用layui 数据表格进行编辑内容时,我们需要先引入layui的相关依赖,并初始化数据表格对象。然后设置表格的列属性以及数据源,同时可以定义一些其他的属性,如是否开启分页、设置每页显示的数据数量等。 当表格中的数据需要编辑时,可以通过设置单元格编辑的属性来实现。比如,通过设置edit属性为text, select等来指定单元格编辑的类型。当用户点击单元格时,会自动调出对应的编辑器进行编辑,并将编辑后的数据保存到对应的单元格。 除此之外,layui 数据表格还提供了事件监听机制,可以通过监听edit事件来获取编辑后的数据。在编辑器中进行编辑时,可以通过监听edit事件来获取编辑后的单元格值,并进行保存或其他操作。 同时,layui 数据表格还支持批量编辑,可以通过选择多个单元格进行批量编辑操作,从而提高编辑效率。 总之,layui 数据表格通过简洁的API和丰富的功能,为我们提供了方便快捷的编辑内容的方式。无论是单个单元格的编辑还是批量编辑,它都能满足我们对数据表格编辑的需求。通过合理的配置和使用,我们可以轻松实现数据的编辑,并提高工作效率。 ### 回答3: layui数据表格是一款基于Layui框架开发的前端数据展示和编辑插件。它提供了丰富的表格功能,包括数据的展示、排序、筛选、分页等。 首先,我们需要引入相应的Layuilayui数据表格的相关代码,然后创建一个表格容器,指定表格的唯一id。 接下来,我们可以通过填充数据来初始化表格内容,可以是静态的数据,也可以是通过异步请求获取的动态数据。编辑内容可以通过设置表格的edit属性来实现,编辑模式下,用户可以直接对表格中的数据进行修改。 在编辑内容时,我们可以对表格的字段进行校验,限制输入的类型、最大长度等,以确保数据的准确性和安全性。 此外,layui数据表格还支持自定义编辑内容的样式和操作按钮,比如可以添加删除按钮、保存按钮等。这样用户就可以通过点击按钮来触发相应的操作,比如保存修改的内容,删除指定的数据行等。 在保存编辑的内容时,我们可以通过执行相应的回调函数来保存数据到后端服务器,以实现数据的持久化。 最后,我们还可以通过设置相应的监听事件来实现对表格数据的监听和响应,比如可以监听表格某一列的排序事件、行选中事件等。 总之,layui数据表格提供了便捷的数据展示和编辑功能,可以帮助我们快速搭建一个功能强大的数据表格,并且支持自定义样式和操作按钮,以及对表格数据的监听和响应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Swn_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值