Layui表格与Layer弹窗父子页面数据交互实现
版权申诉
5星 · 超过95%的资源 138 浏览量
更新于2024-09-12
收藏 245KB PDF 举报
在使用Layui框架开发网页应用时,经常会遇到需要在表格中进行操作并弹出子页面(如layer弹层)的情况。此时,如何实现在layer弹出层与原页面(父页面)之间的数据传递和交互就显得尤为重要。本文将详细介绍在Layui表格模板中,如何实现layer父页面和子页面之间的传值交互。
首先,我们了解下Layui的layer组件。layer是一款强大的弹层插件,它包含提示、信息、警告、iframe、图片、表单等多种类型的弹层,适用于各种场景。在Layui 2.3.0版本中,layer已经被广泛应用于网页交互设计。
要实现在表格中点击操作触发layer弹出层并传递数据,我们首先需要在表格中定义一个操作列,通常包含一个按钮,这个按钮会触发弹出层的显示。例如,以下是一个简单的表格模板:
```html
<table id="role_tb" class="layui-table" lay-data="{width:1007,height:365,url:'http://localhost:8080/rolelist',page:false,id:'idTest'}" lay-filter="demo">
<thead>
<tr>
<th lay-data="{field:'id',width:100,sort:true}">角色ID</th>
<th lay-data="{field:'name',width:140}">角色名称</th>
<th lay-data="{field:'description',width:250}">角色描述</th>
<th lay-data="{field:'str_createdate',width:200,sort:true}">创建时间</th>
<th lay-data="{field:'str_updatedate',width:200,sort:true}">更新时间</th>
<th lay-data="{fixed:'right',width:110,align:'center',toolbar:'#barDemo'}">操作</th>
</tr>
</thead>
</table>
```
在`<th>`标签中,我们看到`toolbar:'#barDemo'`属性,这表示操作列的模板位于`#barDemo`的选择器下。我们需要在这个选择器内定义操作按钮:
```html
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-mini" onclick="editRole(this)">编辑</a>
</script>
```
这里的`onclick="editRole(this)"`是触发函数,我们将在JavaScript中定义这个`editRole`函数来处理点击事件。
当点击“编辑”按钮时,我们需要获取当前行的数据,并传递给layer弹出层。这可以通过`layui-table-rowid`属性实现,它包含了当前行的唯一标识:
```javascript
function editRole(obj) {
var tr = $(obj).parents('tr');
var rowId = tr.attr('layui-table-rowid'); // 获取行ID
var rowData = layui.table.cache['idTest'][rowId]; // 获取行数据
// 打开layer弹出层,传递数据
layer.open({
type: 2, // iframe模式
title: '编辑角色',
content: 'edit_role.html', // 子页面地址
success: function(layero, index) {
// 在子页面加载完成后,设置父页面传来的数据
var iframeWin = window['layui-layer-iframe' + index];
iframeWin.editRoleData = rowData;
}
});
}
```
在子页面(`edit_role.html`)中,我们可以通过`parent`关键字访问父页面的全局变量。因此,我们可以在子页面的JavaScript中获取到父页面传递的数据:
```javascript
// 子页面
window.onload = function() {
var editRoleData = parent.editRoleData; // 获取父页面传递的数据
console.log(editRoleData); // 打印数据,进行后续处理
};
```
通过这种方式,我们可以方便地在Layui的表格模板中实现layer弹出层与父页面之间的数据交互。这种交互方式灵活且易于理解,可以根据实际需求进行调整,满足复杂应用场景的需求。在实际项目中,还需要注意数据安全和防止跨域问题,确保数据正确无误地在父子页面间传递。
2020-12-06 上传
2020-12-13 上传
2020-10-16 上传
2020-08-28 上传
2020-10-17 上传
2020-12-10 上传
2020-12-12 上传
2021-01-19 上传
2021-01-19 上传
weixin_38500444
- 粉丝: 7
- 资源: 945
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析