【jQuery EasyUI系列】 创建展开行明细编辑表单的CRUD应用

当切换数据网络格局(datagrid view)到detailview,用户可以展开一行来显示一些行的明细在行下面,这个功能允许您为防止在明细行面板中的编辑表单提供一些合适的布局。

步骤1、在HTML标签中定义数据网格DataGrid

 1 <table id="dg" title="My Users" style="width:550px;height:250px"
 2         url="get_users.php"
 3         toolbar="#toolbar"
 4         fitColumns="true" singleSelect="true">
 5     <thead>
 6         <tr>
 7             <th field="firstname" width="50">First Name</th>
 8             <th field="lastname" width="50">Last Name</th>
 9             <th field="phone" width="50">Phone</th>
10             <th field="email" width="50">Email</th>
11         </tr>
12     </thead>
13 </table>
14 <div id="toolbar">
15     <a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newItem()">New</a>
16     <a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyItem()">Destroy</a>
17 </div>

步骤2、为数据网格应用明细视图

 1 $(‘#dg‘).datagrid({
 2     view: detailview,
 3     detailFormatter:function(index,row){
 4         return ‘<div class="ddv"></div>‘;
 5     },
 6     onExpandRow: function(index,row){
 7         var ddv = $(this).datagrid(‘getRowDetail‘,index).find(‘div.ddv‘);
 8         ddv.panel({
 9             border:false,
10             cache:true,
11             href:‘show_form.php?index=‘+index,
12             onLoad:function(){
13                 $(‘#dg‘).datagrid(‘fixDetailRowHeight‘,index);
14                 $(‘#dg‘).datagrid(‘selectRow‘,index);
15                 $(‘#dg‘).datagrid(‘getRowDetail‘,index).find(‘form‘).form(‘load‘,row);
16             }
17         });
18         $(‘#dg‘).datagrid(‘fixDetailRowHeight‘,index);
19     }
20 });

为了为数据网格(DataGrid)应用明细视图,在 html 页面头部引入 ‘datagrid-detailview.js‘ 文件。

我们使用 ‘detailFormatter‘ 函数来生成行明细内容。 在这种情况下,我们返回一个用于放置编辑表单(form)的空的 <div>。 当用户点击行展开按钮(‘+‘)时,‘onExpandRow‘ 事件将被触发,我们将通过 ajax 加载编辑表单(form)。 调用 ‘getRowDetail‘ 方法来得到行明细容器,所以我们能查找到行明细面板(panel)。 在行明细中创建面板(panel),加载从 ‘show_form.php‘ 返回的编辑表单(form)。

步骤3、创建编辑表单Form

 1 <form method="post">
 2     <table class="dv-table" style="width:100%;background:#fafafa;padding:5px;margin-top:5px;">
 3         <tr>
 4             <td>First Name</td>
 5             <td><input name="firstname" class="easyui-validatebox" required="true"></input></td>
 6             <td>Last Name</td>
 7             <td><input name="lastname" class="easyui-validatebox" required="true"></input></td>
 8         </tr>
 9         <tr>
10             <td>Phone</td>
11             <td><input name="phone"></input></td>
12             <td>Email</td>
13             <td><input name="email" class="easyui-validatebox" validType="email"></input></td>
14         </tr>
15     </table>
16     <div style="padding:5px 0;text-align:right;padding-right:30px">
17         <a href="#" class="easyui-linkbutton" iconCls="icon-save" plain="true" onclick="saveItem(&lt;?php echo $_REQUEST[‘index‘];?&gt;)">Save</a>
18         <a href="#" class="easyui-linkbutton" iconCls="icon-cancel" plain="true" onclick="cancelItem(&lt;?php echo $_REQUEST[‘index‘];?&gt;)">Cancel</a>
19     </div>
20 </form>

步骤4.保存或取消编辑

 1 function saveItem(index){
 2     var row = $(‘#dg‘).datagrid(‘getRows‘)[index];
 3     var url = row.isNewRecord ? ‘save_user.php‘ : ‘update_user.php?id=‘+row.id;
 4     $(‘#dg‘).datagrid(‘getRowDetail‘,index).find(‘form‘).form(‘submit‘,{
 5         url: url,
 6         onSubmit: function(){
 7             return $(this).form(‘validate‘);
 8         },
 9         success: function(data){
10             data = eval(‘(‘+data+‘)‘);
11             data.isNewRecord = false;
12             $(‘#dg‘).datagrid(‘collapseRow‘,index);
13             $(‘#dg‘).datagrid(‘updateRow‘,{
14                 index: index,
15                 row: data
16             });
17         }
18     });
19 }

决定要回传哪个URL,然后查找表单对象,并调用submit方法提交表单数据,当保存数据成功后,折叠并更新行数据

1 function cancelItem(index){
2     var row = $(‘#dg‘).datagrid(‘getRows‘)[index];
3     if (row.isNewRecord){
4         $(‘#dg‘).datagrid(‘deleteRow‘,index);
5     } else {
6         $(‘#dg‘).datagrid(‘collapseRow‘,index);
7     }
8 }
时间: 2024-07-29 21:46:56

【jQuery EasyUI系列】 创建展开行明细编辑表单的CRUD应用的相关文章

雷林鹏分享:jQuery EasyUI 应用 - 创建展开行明细编辑表单的 CRUD 应用

当切换数据网格视图(datagrid view)到 'detailview',用户可以展开一行来显示一些行的明细在行下面.这个功能允许您为防止在明细行面板(panel)中的编辑表单(form)提供一些合适的布局(layout).在本教程中,我们使用数据网格(datagrid)组件来减小编辑表单(form)所占据空间. 步骤 1:在 HTML 标签中定义数据网格(DataGrid) url="get_users.php" toolbar="#toolbar" fitC

jQuery EasyUI 应用 - 创建展开行明细编辑表单的 CRUD 应用

当切换数据网格视图(datagrid view)到 'detailview',用户可以展开一行来显示一些行的明细在行下面.这个功能允许您为防止在明细行面板(panel)中的编辑表单(form)提供一些合适的布局(layout).在本教程中,我们使用数据网格(datagrid)组件来减小编辑表单(form)所占据空间. 步骤 1:在 HTML 标签中定义数据网格(DataGrid) <table id="dg" title="My Users" style=&q

jQuery EasyUI使用教程之创建展开行详细编辑表单的CRUD应用

当切换datagrid视图到"detailview"时,用户可以展开一行来显示该行下面的任何详细信息.此功能允许用户为放置在行详细信息面板中的编辑表单提供恰当的布局.在本教程中,我们使用DataGrid组件来减少编辑表单所占用的空间. 查看演示 Step 1:在HTML标记中创建DataGrid <table id="dg" title="My Users" style="width:550px;height:250px"

[jQuery EasyUI系列] 创建增删改查应用

一.数据收集并妥善管理数据是网络应用共同的必要.CRUD允许我们生产页面列表并编辑数据库记录. 本文主要演示如何使用jQuery EasyUI实现CRUD DataGrid. 将使用到的插件有: datagrid:向用户展示列表数据 dialog:创建并编辑一条单一的数据 form:用于提交表单数据 messager:显示一些操作信息 二.操作步骤 1.准备数据库并创建实例数据 2.创建DataGrid来显示用户信息 创建没有JavaScript代码的DataGrid 1 <table id=&qu

雷林鹏分享:jQuery EasyUI 拖放 - 创建拖放的购物车

jQuery EasyUI 拖放 - 创建拖放的购物车 如果您能够通过您的 Web 应用简单地实现拖动和放置,您就会知道一些特别的东西.通过 jQuery EasyUI,我们在 Web 应用中可以简单地实现拖放功能. 在本教程中,我们将向您展示如何创建一个启用用户拖动和放置用户想买的商品的购物车页面.购物篮中的物品和价格将更新. 显示页面上的商品 Balloon Price:$25 Feeling Price:$25 正如您所看到的上面的代码,我们添加一个包含一些 元素的 元素来显示商品.所有商

jquery easyui+sparkline插件+jqplot插件实现数据表行内插入线形图

Jquery easyui : 实现前端数据包格式化输出,支持多种模块式定义,只需要添加相应的预设参数即可实现丰富的前端. 资料参考: http://www.jeasyui.com/ Jquery sparkline: 基于jQuery 的js插件,底层调用html5的canvas标签,并通过js动态实现在数据表行内画条形图或趋势图,操作简单,可实现不同类型的图形化,如线形图,饼状图,柱形图. 资料参考:http://omnipotent.net/jquery.sparkline/#s-docs

jQuery EasyUI 窗口 – 创建简单窗口

jQuery EasyUI 窗口 – 创建简单窗口 创建一个窗口(window)非常简单,我们创建一个 DIV 标记: <div id="win" class="easyui-window" title="My Window" style="width:300px;height:100px;padding:5px;"> Some Content. </div> 现在运行测试页面,您会看见一个窗口(win

atitit.编辑表单的实现最佳实践dwr jq easyui

atitit.编辑表单的实现最佳实践dwr jq easyui 1. 提交表单 1 2. 表单验证 1 3. 数据保存使用meger方式取代save&update方式 1 3.1. Filter::(mp>>do) 1 3.2. 2.convert(mp>>do) 2 3.3. valider 2 3.4. 默认值设置问题..(只do) 2 4. 表单回显(编辑模式) 2 1. 提交表单 Jq d serize Easyuui yanen l ... Dwr3  韩式最简单

struts2官方 中文教程 系列十一:使用XML进行表单验证

在本教程中,我们将讨论如何使用Struts 2的XML验证方法来验证表单字段中用户的输入.在前面的教程中,我们讨论了在Action类中使用validate方法验证用户的输入.使用单独的XML验证文件让您可以内置到Struts 2框架的验证器. 贴个本帖的地址,以免被爬:struts2官方 中文教程 系列十一:使用XML进行表单验证  即 http://www.cnblogs.com/linghaoxinpian/p/6938720.html 下载本章节代码 为了使用户能够编辑存储在Person对