Layui 弹出层实现表格多选并返回选中数据
作者:工具松鼠时间:2026-10-23 10:36:42浏览:295
本文介绍如何在 Layui 框架中,通过 layer.open 打开弹出层,在层内使用 table.render 渲染数据表格。用户勾选所需行后,点击确定按钮,利用 table.checkStatus 获取选中数据并返回给父页面,实现完整的数据选择与交互流程。
Layui 弹出层表格多选返回数据实现
具体实现效果如下图所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>文件数据</title>
<link href="~/Content/Base/layui/css/layui.css" rel="external nofollow" rel="stylesheet" type="text/css" />
<script src="~/Content/Base/layui/layui.js" type="text/javascript"></script>
<script src="../../../../Content/Views/js/jquery-1.8.3.min.js" type="text/javascript"></script>
</head>
<body>
<style type="text/css">
body
{
background-color: #F0F0F0;
}
#content
{
margin-top: 2px;
}
#btns
{
float:left;
}
#btns .layui-btn
{
margin-top: 5px;
}
#Addbtn
{
margin-left: 20px;
}
.layui-btn
{
background-color: #3385ff;
width: 120px;
}
#datatable
{
background-color: White;
margin-top: 5px;
clear:both;
}
.topbox
{
height: 50px;
background-color: #ffffff;
}
.searchbox
{
float: right;
margin-right: 20px;
}
.searchinput, .searchbtn
{
float: left;
margin-top: 5px;
}
.searchinput
{
width: 300px;
margin-left: 20px;
}
.searchbtn button
{
width: 80px;
}
</style>
<div id="content">
<div class="topbox">
<div class="searchinput">
<input type="text" name="name" class="layui-input" id="SearchText" />
</div>
<div class="searchbtn">
<button type="button" class="layui-btn" onclick="BtnSearchDataListInfo()">
搜索</button></div>
</div>
<div id="datatable">
<table id="demo" lay-filter="test" style="height:100%">
</table>
</div>
</div>
<script type="text/html" id="barDemo">
<a class="layui-btn-mini" lay-event="Select" style="color:#3385ff">选择</a><span style="color:#3385ff">/</span>
</script>
<script type="text/javascript">
layui.use('form', function () {
var form = layui.form;
});
var table;
var datas = null;
function BindData() {
$.ajax({
cache: false,
async: false,
url: '/ModelList/BindModelListView',
type: 'get',
dataType: 'json',
success: function (data) {
DataTable(data);
}, error: function (data) {
alert(JSON.stringify(data));
}
})
}
function DataTable(data) {
layui.use('table', function () {
table = layui.table;
window.demoTable = table.render({
id: 'tempData',
elem: '#demo',
data: data,
cols: [[
{ checkbox: true, title: '全选', width: 33 }
, { field: 'modelname', title: '名称', width: 260, align: 'left' }
, { field: 'name', title: '产品', width: 200, align: 'left', templet: '#ProductTpl' }
, { field: 'version', title: '版本', width: 200, align: 'left' }
, { field: 'mixname', title: '对象', width: 150, align: 'left' }
, { field: 'methodsName', title: '方法', width: 150, align: 'right' }
, { field: 'attributename', title: '属性', width: 180, align: 'left', templet: '#FeaturesTpl' }
//, { field: 'name', title: '文件', width: 260, align: 'left', templet: '#DataListTpl' }
// , { field: 'name', title: '文件', width: 260, align: 'left',templet:'#DataListTpl' }
, { field: 'ModelListType', title: '类型', width: 150, align: 'left' }
// , { field: '', title: '操作', width: 300, align: 'center', toolbar: '#barDemo', fixed: 'right' }
]],
height: 500,
even: true,
page: true
});
//监听工具条
table.on('tool(test)', function (obj) {
var data = obj.data;
if (obj.event === 'Select') {
alert("select");
}
});
})
}
BindData();
var callbackdata = function () {
var checkStatus = table.checkStatus('tempData')
, data = checkStatus.data;
return data;
}
</script>
</body>
</html>
该页面作为弹出层窗口存在,用户在列表中选中特定行后,点击确定按钮即可将选中的数据返回。
layui.use('layer', function () {
var layer = layui.layer;
layer.open({
cache: false,
type: 2,
title: '对比',
skin: 'layui-layer-tb_125',
area: ['600px', '250px'],
content: '../ModelList/ModelMapNodeAttributeContrastForm',
moveOut: true,
zIndex: layer.zIndex,
btn: ['确定', '关闭'],
yes: function (index) {
//当点击‘确定'按钮的时候,获取弹出层返回的值
var resdata = window["layui-layer-iframe" + index].callbackdata();
//最后关闭弹出层
layer.close(index);
layui.use('layer', function () {
var layer = layui.layer;
layer.open({
type: 2,
title: '查看',
skin: 'layui-layer-tb_125',
area: ['600px', '250px'],
content: '../ModelList/ModelMapNodeAttributeDataForm?ContrastModelId=' + resdata["0"].modelid + '&ContrastModelName=' + resdata["0"].modelname + '&ContrastProductId=' + resdata["0"].productconfigid + '&aaaaaa=1',
moveOut: true,
zIndex: layer.zIndex,
cancel: function (index, layero) {
layer.close(index);
return true;
}, end: function () {
}
});
});
},
cancel: function (index) {
//右上角关闭回调
layer.close(index);
}
});
});
以上即为 Layui 实现弹出层表格多选并返回数据的完整示例,供各位开发者参考使用,欢迎继续支持本站。
作者最新文章
WebStorm内置JS代码格式化功能怎么用
2026-11-05 10:10:47
在线JS代码格式化与混淆压缩工具推荐及使用指南
2026-11-03 20:31:53
CodePen、JSFiddle与RunJS对比:哪款在线JavaScript编辑器更好用
2026-11-03 18:52:45
无需安装环境,5款主流JavaScript在线运行工具推荐
2026-11-03 18:23:26
JS怎么将地址栏查询字符串转换为JSON对象
2026-11-03 18:10:29
