网站首页 > 知识剖析 正文
当切换datagrid视图到"detailview"时,用户可以展开一行来显示该行下面的任何详细信息。此功能允许用户为放置在行详细信息面板中的编辑表单提供恰当的布局。在本教程中,我们使用DataGrid组件来减少编辑表单所占用的空间。
Step 1:在HTML标记中创建DataGrid
First Name | Last Name | Phone |
---|
Step 2:为DataGrid应用详细视图
$('#dg').datagrid({ view: detailview, detailFormatter:function(index,row){ return ''; }, onExpandRow: function(index,row){ var ddv = $(this).datagrid('getRowDetail',index).find('div.ddv'); ddv.panel({ border:false, cache:true, href:'show_form.php?index='+index, onLoad:function{ $('#dg').datagrid('fixDetailRowHeight',index); $('#dg').datagrid('selectRow',index); $('#dg').datagrid('getRowDetail',index).find('form').form('load',row); } }); $('#dg').datagrid('fixDetailRowHeight',index); } });
若要使用DataGrid的详细视图,那么就在html 页面头部引入"datagrid-detailview.js"文件。
我们使用"detailFormatter"函数来生成行详细信息内容。在这种情况下,我们返回一个用于放置编辑表单的空的 。当用户点击该行展开按钮("+")时,"onExpandRow"事件将被触发,我们可以通过AJAX加载编辑表单。使用getRowDetail方法可以获得该行的详细信息容器,因此我们能够查找到该行的详细信息面板。在行详细信息中创建面板,并从"show_form.php"中加载返回的编辑表单。
Step 3:创建编辑表单
从服务器中加载编辑表单。
show_form.php
Step 4:保存或取消编辑
调用"saveItem"函数来保存用户,或调用"cancelItem"函数来取消编辑。
function saveItem(index){ var row = $('#dg').datagrid('getRows')[index]; var url = row.isNewRecord ? 'save_user.php' : 'update_user.php?id='+row.id; $('#dg').datagrid('getRowDetail',index).find('form').form('submit',{ url: url, onSubmit: function{ return $(this).form('validate'); }, success: function(data){ data = eval('('+data+')'); data.isNewRecord = false; $('#dg').datagrid('collapseRow',index); $('#dg').datagrid('updateRow',{ index: index, row: data }); } }); }
确定首先要发布哪一个URL,然后查找表单对象,并调用"submit"方法来提交表单数据。当数据保存成功后,收起并更新行数据。
function cancelItem(index){ var row = $('#dg').datagrid('getRows')[index]; if (row.isNewRecord){ $('#dg').datagrid('deleteRow',index); } else { $('#dg').datagrid('collapseRow',index); } }
当取消编辑操作时,如果该行是新行而且还没有保存,那么直接删除该行,否则收起该行。
下载EasyUI示例:easyui-crud-demo.zip
本站文章除注明转载外,均为本站原创或翻译
- 上一篇: CSDN免登陆复制代码的几种方法(csdn扫码登录怎么实现的)
- 下一篇:已经是最后一篇了
猜你喜欢
- 2025-07-06 jQuery EasyUI使用教程:创建展开行详细编辑表单的CRUD应用
- 2025-07-06 CSDN免登陆复制代码的几种方法(csdn扫码登录怎么实现的)
- 2025-07-06 LayUi提高-Select控件使用(layui form select)
- 2025-07-06 用 Playwright MCP 让 AI 改它自己写的屎山代码
- 2025-07-06 multiple-select.js中手动设置全选和取消全选
- 2025-07-06 前端实现右键自定义菜单(html 自定义右键菜单)
- 2025-07-06 JavaScript脚本如何断言select下拉框的元素内容?
- 2025-07-06 广州蓝景分享—实用的CSS技巧,助你成为更好的前端开发者
- 2025-07-06 MyBatis-Plus码之重器 lambda 表达式使用指南,开发效率瞬间提升80%
- 2025-07-06 Go语言之select的使用和实现原理(go select case)
- 最近发表
-
- jQuery EasyUI使用教程:创建展开行详细编辑表单的CRUD应用
- CSDN免登陆复制代码的几种方法(csdn扫码登录怎么实现的)
- LayUi提高-Select控件使用(layui form select)
- 用 Playwright MCP 让 AI 改它自己写的屎山代码
- multiple-select.js中手动设置全选和取消全选
- 前端实现右键自定义菜单(html 自定义右键菜单)
- JavaScript脚本如何断言select下拉框的元素内容?
- 广州蓝景分享—实用的CSS技巧,助你成为更好的前端开发者
- MyBatis-Plus码之重器 lambda 表达式使用指南,开发效率瞬间提升80%
- Go语言之select的使用和实现原理(go select case)
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)