2、easyUI-创建 CRUD可编辑dataGrid(表格)
在介绍这节之前,我们先看一下效果图:
双击可以进入编辑
aaarticlea/png;base64,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" alt="" />
点击添加可以在下一行显示
aaarticlea/png;base64,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" alt="" />
应用场景,一般不用于这种用户添加(此处只是示例),一般用于多记录,如学历信息,工作经历等
在这之前,我们要在index.php中引入jquery.edatagrid.js文件,可以去网站下载,稍后也会附出文件以代码的形式;
在前一节中,我们需要修改的有两个地方(优化后的代码基础上),第一index.php页面,第二稍稍增加或者改动userAction和userModel文件;
首先附上index.php代码,然后解释以下:
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>dataGrid</title>
- <link rel="stylesheet" type="text/css" href="../ui/jquery-easyui-1.4.5/themes/default/easyui.css">
- <link rel="stylesheet" type="text/css" href="../ui/jquery-easyui-1.4.5/themes/icon.css">
- <link rel="stylesheet" type="text/css" href="../ui/jquery-easyui-1.4.5/themes/color.css">
- <script src="../ui/jquery-easyui-1.4.5/jquery.min.js"></script>
- <script src="../ui/jquery-easyui-1.4.5/jquery.easyui.min.js"></script>
- <script src="../js/crud/jquery.edatagrid.js"></script>
- <script src="../ui/jquery-easyui-1.4.5/locale/easyui-lang-zh_CN.js"></script>
- <!--<script src="../js/crud/bus_pubuser.js"></script>-->
- <script>
- $(function(){
- $('#dg').edatagrid({
- url: './data/crud/userAction.php?flag=list',
- saveUrl: './data/crud/userAction.php?flag=add',
- updateUrl: './data/crud/userAction.php?flag=modify',
- destroyUrl: './data/crud/userAction.php?flag=delete'
- });
- });
- </script>
- </head>
- <body>
- <!--
- 作者:ethancoco
- 时间:2016-07-10
- 描述:list
- -->
- <table id="dg" title="用户列表" class="easyui-datagrid" style="width:550px;height:250px" toolbar="#toolbar" idField="id" rownumbers="true" fitColumns="true" singleSelect="true">
- <thead>
- <tr>
- <th field="fname" width="50" editor="{type:'validatebox',options:{required:true}}">名</th>
- <th field="lname" width="50" editor="{type:'validatebox',options:{required:true}}">姓</th>
- <th field="sex" width="50" editor="{type:'validatebox',options:{required:true}}">性别</th>
- <th field="phone" width="50" editor="{type:'validatebox',options:{required:true}}">联系电话</th>
- <th field="email" width="50" editor="{type:'validatebox',options:{required:true}}">邮件</th>
- </tr>
- </thead>
- </table>
- <div id="toolbar">
- <a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="javascript:$('#dg').edatagrid('addRow')">添加</a>
- <a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="javascript:$('#dg').edatagrid('destroyRow')">删除</a>
- <a href="#" class="easyui-linkbutton" iconCls="icon-save" plain="true" onclick="javascript:$('#dg').edatagrid('saveRow')">保存</a>
- <a href="#" class="easyui-linkbutton" iconCls="icon-undo" plain="true" onclick="javascript:$('#dg').edatagrid('cancelRow')">取消</a>
- </div>
- <!--
- 作者:ethancoco
- 时间:2016-07-10
- 描述:dialog
- -->
- <!--<div id="dlg" class="easyui-dialog" style="width:400px;height:320px;padding:10px 20px;" closed="true" modal="true" buttons="#dlg-buttons">
- <div class="ftitle">基本信息</div>
- <hr />
- <form id="fm" method="post">
- <div class="fitem">
- <p>
- <label>First Name:</label>
- <input name="fname" class="easyui-validatebox" required="true">
- </p>
- </div>
- <div class="fitem">
- <p>
- <label>Last Name:</label>
- <input name="lname" class="easyui-validatebox" required="true">
- </p>
- </div>
- <div class="fitem">
- <p>
- <label>Sex:</label>
- <input name="sex" class="easyui-validatebox" required="true">
- </p>
- </div>
- <div class="fitem">
- <p>
- <label>Phone:</label>
- <input name="phone">
- </p>
- </div>
- <div class="fitem">
- <p>
- <label>Email:</label>
- <input name="email" class="easyui-validatebox" validType="email">
- </p>
- </div>
- </form>
- </div>
- <div id="dlg-buttons">
- <a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveUser()">保存</a>
- <a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')">关闭</a>
- </div>-->
- </body>
- <html>
页面中table属性要更改,加入属性idField="id" 去除url属性,idField表示指明哪一个字段是标识字段。其中form表单可以去掉不需要弹出形式了;
/***********************/
在table的列中添加如下代码:editor="{type:'validatebox',options:{required:true}}",
editor属性指明编辑类型。当字符串指明编辑类型的时候,对象包含2个属性:
type:字符串,该编辑类型可以使用的类型有:text,textarea,checkbox,numberbox,validatebox,datebox,combobox,combotree。
options:对象,object,
该编辑器属性对应于编辑类型。
/***********************/
在head头部中可以看到,添加了如下代码:
<script>
$(function(){
$('#dg').edatagrid({
url: './data/crud/userAction.php?flag=list',
saveUrl: './data/crud/userAction.php?flag=add',
updateUrl: './data/crud/userAction.php?flag=modify',
destroyUrl: './data/crud/userAction.php?flag=delete'
});
});
</script>
指定url表示获取用户列表信息list
saveUrl表示新增用户保存动作(支持批量保存)
updateUrl表示更新保存用户动作
destroyUrl表示删除用户动作
在toolbar的按钮变成了onclick="javascript:$('#dg').edatagrid('addRow')"等,这些addRow,destroyRow等你可以去js中看或者修改,不然就记住直接使用;
准备好之后,还是启用原来的后台代码,list,delete,update,都没用问题,但是add出现了错误,
跟踪代码知道,在add新增的时候,提交post表单的时候有一个新的属性isNewRecord等于true的也被提交过去了(ps,如果在之前的代码中,如果我使用每一个字段都去匹配的话,就不会出现这个问题,但是考虑到如果有很多的字段,你每个都去匹配的话,将会很耽误时间,所以就直接使用$_POST当做数组直接过去了),所以我们需要变更代码;
有两种解决方法,一是,我们直接重新加个flag,比如把saveUrl改成这样, saveUrl: './data/crud/userAction.php?flag=add_special',add_special作为一个新的flag传到后台,如后台userAction.php在switch下条件添加case "add_special" : $user->add_special($_POST); break; 然后在userModel.php新增add_special方法;
方法如下:
function add_special($arr){
$medoo = new medoo();
$fname = $arr["fname"]==null?"":$arr["fname"];
$lname = $arr["lname"]==null?"":$arr["lname"];
$sex = $arr["sex"]==null?"":$arr["sex"];
$phone = $arr["phone"]==null?"":$arr["phone"];
$email = $arr["email"]==null?"":$arr["email"];
$sql = $sql = "insert into eui_user(fname,lname,sex,phone,email) values('$fname','$lname','$sex','$phone','$email')";
$result = $medoo->query($sql);
if($result){
echo json_encode(array('success'=>true));
}else{
echo json_encode(array('errorMsg'=>'操作过程出现错误!'));
}
}
我这里直接每个赋值获取,由于字段比较少的原因(如果字段比较多,大家可以想想其他方法,$_POST提交过来的第一个是isNewRecord,思路是可以去除第一个);
还有一种方法就是,把这个方法直接写在save_user方法下,如下:
- function save_user($arr){
- $medoo = new medoo();
- //var_dump($arr);
- if(isset($arr['isNewRecord'])){//可编辑列表
- $fname = $arr["fname"]==null?"":$arr["fname"];
- $lname = $arr["lname"]==null?"":$arr["lname"];
- $sex = $arr["sex"]==null?"":$arr["sex"];
- $phone = $arr["phone"]==null?"":$arr["phone"];
- $email = $arr["email"]==null?"":$arr["email"];
- $sql = $sql = "insert into eui_user(fname,lname,sex,phone,email) values('$fname','$lname','$sex','$phone','$email')";
- $result = $medoo->query($sql);
- if($result){
- echo json_encode(array('success'=>true));
- }else{
- echo json_encode(array('errorMsg'=>'操作过程出现错误!'));
- }
- }else{
- $result = $medoo->insert("eui_user",$arr);
- if($result){
- echo json_encode(array('success'=>true));
- }else{
- echo json_encode(array('errorMsg'=>'操作过程出现错误!'));
- }
- }
- }
这节就完成了,这节代码。其中medoo.php附加了(看上一节)。
所需代码文件(index.php,medoo.php,jquery.edatagrid.js,userAction.php,userModel.php)bus_pubuser.js可以去掉;
index.php
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>dataGrid</title>
- <link rel="stylesheet" type="text/css" href="../ui/jquery-easyui-1.4.5/themes/default/easyui.css">
- <link rel="stylesheet" type="text/css" href="../ui/jquery-easyui-1.4.5/themes/icon.css">
- <link rel="stylesheet" type="text/css" href="../ui/jquery-easyui-1.4.5/themes/color.css">
- <script src="../ui/jquery-easyui-1.4.5/jquery.min.js"></script>
- <script src="../ui/jquery-easyui-1.4.5/jquery.easyui.min.js"></script>
- <script src="../js/crud/jquery.edatagrid.js"></script>
- <script src="../ui/jquery-easyui-1.4.5/locale/easyui-lang-zh_CN.js"></script>
- <!--<script src="../js/crud/bus_pubuser.js"></script>-->
- <script>
- $(function(){
- $('#dg').edatagrid({
- url: './data/crud/userAction.php?flag=list',
- saveUrl: './data/crud/userAction.php?flag=add',
- updateUrl: './data/crud/userAction.php?flag=modify',
- destroyUrl: './data/crud/userAction.php?flag=delete'
- });
- });
- </script>
- </head>
- <body>
- <!--
- 作者:ethancoco
- 时间:2016-07-10
- 描述:list
- -->
- <table id="dg" title="用户列表" class="easyui-datagrid" style="width:550px;height:250px" toolbar="#toolbar" idField="id" rownumbers="true" fitColumns="true" singleSelect="true">
- <thead>
- <tr>
- <th field="fname" width="50" editor="{type:'validatebox',options:{required:true}}">名</th>
- <th field="lname" width="50" editor="{type:'validatebox',options:{required:true}}">姓</th>
- <th field="sex" width="50" editor="{type:'validatebox',options:{required:true}}">性别</th>
- <th field="phone" width="50" editor="{type:'validatebox',options:{required:true}}">联系电话</th>
- <th field="email" width="50" editor="{type:'validatebox',options:{required:true}}">邮件</th>
- </tr>
- </thead>
- </table>
- <div id="toolbar">
- <a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="javascript:$('#dg').edatagrid('addRow')">添加</a>
- <a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="javascript:$('#dg').edatagrid('destroyRow')">删除</a>
- <a href="#" class="easyui-linkbutton" iconCls="icon-save" plain="true" onclick="javascript:$('#dg').edatagrid('saveRow')">保存</a>
- <a href="#" class="easyui-linkbutton" iconCls="icon-undo" plain="true" onclick="javascript:$('#dg').edatagrid('cancelRow')">取消</a>
- </div>
- <!--
- 作者:ethancoco
- 时间:2016-07-10
- 描述:dialog
- -->
- <!--<div id="dlg" class="easyui-dialog" style="width:400px;height:320px;padding:10px 20px;" closed="true" modal="true" buttons="#dlg-buttons">
- <div class="ftitle">基本信息</div>
- <hr />
- <form id="fm" method="post">
- <div class="fitem">
- <p>
- <label>First Name:</label>
- <input name="fname" class="easyui-validatebox" required="true">
- </p>
- </div>
- <div class="fitem">
- <p>
- <label>Last Name:</label>
- <input name="lname" class="easyui-validatebox" required="true">
- </p>
- </div>
- <div class="fitem">
- <p>
- <label>Sex:</label>
- <input name="sex" class="easyui-validatebox" required="true">
- </p>
- </div>
- <div class="fitem">
- <p>
- <label>Phone:</label>
- <input name="phone">
- </p>
- </div>
- <div class="fitem">
- <p>
- <label>Email:</label>
- <input name="email" class="easyui-validatebox" validType="email">
- </p>
- </div>
- </form>
- </div>
- <div id="dlg-buttons">
- <a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveUser()">保存</a>
- <a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')">关闭</a>
- </div>-->
- </body>
- <html>
userAction.php
- <?php
- require_once "../../model/crud/userModel.php";
- $flag = $_GET["flag"];
- if(isset($_GET["id"])){
- $id=$_GET["id"];
- }else if(isset($_POST["id"])){
- $id=$_POST["id"];
- }else{
- $id="";
- }
- $user = new userModel();
- switch($flag){
- case "list" : $user->list_user();
- break;
- case "add" : $user->save_user($_POST);
- break;
- case "modify" : $user->edit_user($_POST,$id);
- break;
- case "delete" : $user->delete_user($id);
- break;
- //特殊方法
- case "add_special" : $user->add_special($_POST);
- break;
- default: $user->showErrorMsg();
- }
userModel.php
- <?php
- require_once "../../../common/medoo.php";
- header("Content-Type: text/html; charset=UTF-8");
- class userModel{
- function showErrorMsg(){
- echo json_encode(array('errorMsg'=>'没有相应的操作模块!'));
- }
- function list_user(){
- $medoo = new medoo();
- $result = $medoo->select("eui_user","*");
- echo json_encode($result,JSON_UNESCAPED_UNICODE);
- }
- function save_user($arr){
- $medoo = new medoo();
- //var_dump($arr);
- if(isset($arr['isNewRecord'])){//可编辑列表
- $fname = $arr["fname"]==null?"":$arr["fname"];
- $lname = $arr["lname"]==null?"":$arr["lname"];
- $sex = $arr["sex"]==null?"":$arr["sex"];
- $phone = $arr["phone"]==null?"":$arr["phone"];
- $email = $arr["email"]==null?"":$arr["email"];
- $sql = $sql = "insert into eui_user(fname,lname,sex,phone,email) values('$fname','$lname','$sex','$phone','$email')";
- $result = $medoo->query($sql);
- if($result){
- echo json_encode(array('success'=>true));
- }else{
- echo json_encode(array('errorMsg'=>'操作过程出现错误!'));
- }
- }else{
- $result = $medoo->insert("eui_user",$arr);
- if($result){
- echo json_encode(array('success'=>true));
- }else{
- echo json_encode(array('errorMsg'=>'操作过程出现错误!'));
- }
- }
- }
- function edit_user($arr,$id){
- $medoo = new medoo();
- $result = $medoo->update("eui_user",$arr," where id=".$id);
- if($result){
- echo json_encode(array('success'=>true));
- }else{
- echo json_encode(array('errorMsg'=>'操作过程出现错误!'));
- }
- }
- function delete_user($id){
- $medoo = new medoo();
- $result = $medoo->delete("eui_user"," where id=".$id);
- if($result){
- echo json_encode(array('success'=>true));
- }else{
- echo json_encode(array('errorMsg'=>'操作过程出现错误!'));
- }
- }
- //特殊方法
- function add_special($arr){
- $medoo = new medoo();
- $fname = $arr["fname"]==null?"":$arr["fname"];
- $lname = $arr["lname"]==null?"":$arr["lname"];
- $sex = $arr["sex"]==null?"":$arr["sex"];
- $phone = $arr["phone"]==null?"":$arr["phone"];
- $email = $arr["email"]==null?"":$arr["email"];
- $sql = $sql = "insert into eui_user(fname,lname,sex,phone,email) values('$fname','$lname','$sex','$phone','$email')";
- $result = $medoo->query($sql);
- if($result){
- echo json_encode(array('success'=>true));
- }else{
- echo json_encode(array('errorMsg'=>'操作过程出现错误!'));
- }
- }
- }
jquery.edatagrid.js
- /**
- * edatagrid - jQuery EasyUI
- *
- * Licensed under the GPL:
- * http://www.gnu.org/licenses/gpl.txt
- *
- * Copyright 2011-2015 www.jeasyui.com
- *
- * Dependencies:
- * datagrid
- * messager
- *
- */
- (function($){
- // var oldLoadDataMethod = $.fn.datagrid.methods.loadData;
- // $.fn.datagrid.methods.loadData = function(jq, data){
- // jq.each(function(){
- // $.data(this, 'datagrid').filterSource = null;
- // });
- // return oldLoadDataMethod.call($.fn.datagrid.methods, jq, data);
- // };
- var autoGrids = [];
- function checkAutoGrid(){
- autoGrids = $.grep(autoGrids, function(t){
- return t.length && t.data('edatagrid');
- });
- }
- function saveAutoGrid(omit){
- checkAutoGrid();
- $.map(autoGrids, function(t){
- if (t[0] != $(omit)[0]){
- t.edatagrid('saveRow');
- }
- });
- checkAutoGrid();
- }
- function addAutoGrid(dg){
- checkAutoGrid();
- for(var i=0; i<autoGrids.length; i++){
- if ($(autoGrids[i])[0] == $(dg)[0]){return;}
- }
- autoGrids.push($(dg));
- }
- function delAutoGrid(dg){
- checkAutoGrid();
- autoGrids = $.grep(autoGrids, function(t){
- return $(t)[0] != $(dg)[0];
- });
- }
- $(function(){
- $(document).unbind('.edatagrid').bind('mousedown.edatagrid', function(e){
- var p = $(e.target).closest('div.datagrid-view,div.combo-panel,div.window,div.window-mask');
- if (p.length){
- if (p.hasClass('datagrid-view')){
- saveAutoGrid(p.children('table'));
- }
- return;
- }
- saveAutoGrid();
- });
- });
- function buildGrid(target){
- var opts = $.data(target, 'edatagrid').options;
- $(target).datagrid($.extend({}, opts, {
- onDblClickCell:function(index,field,value){
- if (opts.editing){
- $(this).edatagrid('editRow', index);
- focusEditor(target, field);
- }
- if (opts.onDblClickCell){
- opts.onDblClickCell.call(target, index, field, value);
- }
- },
- onClickCell:function(index,field,value){
- // if (opts.editing && opts.editIndex >= 0){
- // $(this).edatagrid('editRow', index);
- // focusEditor(target, field);
- // }
- if (opts.editIndex >= 0){
- var dg = $(this);
- if (opts.editing){
- dg.edatagrid('editRow', index);
- } else {
- setTimeout(function(){
- dg.edatagrid('selectRow', opts.editIndex);
- }, 0);
- }
- focusEditor(target, field);
- }
- if (opts.onClickCell){
- opts.onClickCell.call(target, index, field, value);
- }
- },
- onBeforeEdit: function(index, row){
- if (opts.onBeforeEdit){
- if (opts.onBeforeEdit.call(target, index, row) == false){
- return false;
- }
- }
- if (opts.autoSave){
- addAutoGrid(this);
- }
- opts.originalRow = $.extend(true, [], row);
- },
- onAfterEdit: function(index, row){
- delAutoGrid(this);
- opts.editIndex = -1;
- var url = row.isNewRecord ? opts.saveUrl : opts.updateUrl;
- if (url){
- var changed = false;
- var fields = $(this).edatagrid('getColumnFields',true).concat($(this).edatagrid('getColumnFields'));
- for(var i=0; i<fields.length; i++){
- var field = fields[i];
- var col = $(this).edatagrid('getColumnOption', field);
- if (col.editor && opts.originalRow[field] != row[field]){
- changed = true;
- break;
- }
- }
- if (changed){
- opts.poster.call(target, url, row, function(data){
- if (data.isError){
- var originalRow = opts.originalRow;
- $(target).edatagrid('cancelRow',index);
- $(target).edatagrid('selectRow',index);
- $(target).edatagrid('editRow',index);
- opts.originalRow = originalRow;
- opts.onError.call(target, index, data);
- return;
- }
- data.isNewRecord = null;
- $(target).datagrid('updateRow', {
- index: index,
- row: data
- });
- if (opts.tree){
- var idValue = row[opts.idField||'id'];
- var t = $(opts.tree);
- var node = t.tree('find', idValue);
- if (node){
- node.text = row[opts.treeTextField];
- t.tree('update', node);
- } else {
- var pnode = t.tree('find', row[opts.treeParentField]);
- t.tree('append', {
- parent: (pnode ? pnode.target : null),
- data: [{id:idValue,text:row[opts.treeTextField]}]
- });
- }
- }
- opts.onSuccess.call(target, index, row);
- opts.onSave.call(target, index, row);
- }, function(data){
- opts.onError.call(target, index, data);
- });
- } else {
- opts.onSave.call(target, index, row);
- }
- } else {
- opts.onSave.call(target, index, row);
- }
- if (opts.onAfterEdit) opts.onAfterEdit.call(target, index, row);
- },
- onCancelEdit: function(index, row){
- delAutoGrid(this);
- opts.editIndex = -1;
- if (row.isNewRecord) {
- $(this).datagrid('deleteRow', index);
- }
- if (opts.onCancelEdit) opts.onCancelEdit.call(target, index, row);
- },
- onBeforeLoad: function(param){
- if (opts.onBeforeLoad.call(target, param) == false){return false}
- $(this).edatagrid('cancelRow');
- if (opts.tree){
- var node = $(opts.tree).tree('getSelected');
- param[opts.treeParentField] = node ? node.id : undefined;
- }
- }
- }));
- if (opts.tree){
- $(opts.tree).tree({
- url: opts.treeUrl,
- onClick: function(node){
- $(target).datagrid('load');
- },
- onDrop: function(dest,source,point){
- var targetId = $(this).tree('getNode', dest).id;
- var data = {
- id:source.id,
- targetId:targetId,
- point:point
- };
- opts.poster.call(target, opts.treeDndUrl, data, function(result){
- $(target).datagrid('load');
- });
- }
- });
- }
- }
- function focusEditor(target, field){
- var opts = $(target).edatagrid('options');
- var t;
- var editor = $(target).datagrid('getEditor', {index:opts.editIndex,field:field});
- if (editor){
- t = editor.target;
- } else {
- var editors = $(target).datagrid('getEditors', opts.editIndex);
- if (editors.length){
- t = editors[0].target;
- }
- }
- if (t){
- if ($(t).hasClass('textbox-f')){
- $(t).textbox('textbox').focus();
- } else {
- $(t).focus();
- }
- }
- }
- $.fn.edatagrid = function(options, param){
- if (typeof options == 'string'){
- var method = $.fn.edatagrid.methods[options];
- if (method){
- return method(this, param);
- } else {
- return this.datagrid(options, param);
- }
- }
- options = options || {};
- return this.each(function(){
- var state = $.data(this, 'edatagrid');
- if (state){
- $.extend(state.options, options);
- } else {
- $.data(this, 'edatagrid', {
- options: $.extend({}, $.fn.edatagrid.defaults, $.fn.edatagrid.parseOptions(this), options)
- });
- }
- buildGrid(this);
- });
- };
- $.fn.edatagrid.parseOptions = function(target){
- return $.extend({}, $.fn.datagrid.parseOptions(target), {
- });
- };
- $.fn.edatagrid.methods = {
- options: function(jq){
- var opts = $.data(jq[0], 'edatagrid').options;
- return opts;
- },
- loadData: function(jq, data){
- return jq.each(function(){
- $(this).edatagrid('cancelRow');
- $(this).datagrid('loadData', data);
- });
- },
- enableEditing: function(jq){
- return jq.each(function(){
- var opts = $.data(this, 'edatagrid').options;
- opts.editing = true;
- });
- },
- disableEditing: function(jq){
- return jq.each(function(){
- var opts = $.data(this, 'edatagrid').options;
- opts.editing = false;
- });
- },
- isEditing: function(jq, index){
- var opts = $.data(jq[0], 'edatagrid').options;
- var tr = opts.finder.getTr(jq[0], index);
- return tr.length && tr.hasClass('datagrid-row-editing');
- },
- editRow: function(jq, index){
- return jq.each(function(){
- var dg = $(this);
- var opts = $.data(this, 'edatagrid').options;
- var editIndex = opts.editIndex;
- if (editIndex != index){
- if (dg.datagrid('validateRow', editIndex)){
- if (editIndex>=0){
- if (opts.onBeforeSave.call(this, editIndex) == false) {
- setTimeout(function(){
- dg.datagrid('selectRow', editIndex);
- },0);
- return;
- }
- }
- dg.datagrid('endEdit', editIndex);
- dg.datagrid('beginEdit', index);
- if (!dg.edatagrid('isEditing', index)){
- return;
- }
- opts.editIndex = index;
- focusEditor(this);
- var rows = dg.datagrid('getRows');
- opts.onEdit.call(this, index, rows[index]);
- } else {
- setTimeout(function(){
- dg.datagrid('selectRow', editIndex);
- }, 0);
- }
- }
- });
- },
- addRow: function(jq, index){
- return jq.each(function(){
- var dg = $(this);
- var opts = $.data(this, 'edatagrid').options;
- if (opts.editIndex >= 0){
- if (!dg.datagrid('validateRow', opts.editIndex)){
- dg.datagrid('selectRow', opts.editIndex);
- return;
- }
- if (opts.onBeforeSave.call(this, opts.editIndex) == false){
- setTimeout(function(){
- dg.datagrid('selectRow', opts.editIndex);
- },0);
- return;
- }
- dg.datagrid('endEdit', opts.editIndex);
- }
- var rows = dg.datagrid('getRows');
- function _add(index, row){
- if (index == undefined){
- dg.datagrid('appendRow', row);
- opts.editIndex = rows.length - 1;
- } else {
- dg.datagrid('insertRow', {index:index,row:row});
- opts.editIndex = index;
- }
- }
- if (typeof index == 'object'){
- _add(index.index, $.extend(index.row, {isNewRecord:true}))
- } else {
- _add(index, {isNewRecord:true});
- }
- // if (index == undefined){
- // dg.datagrid('appendRow', {isNewRecord:true});
- // opts.editIndex = rows.length - 1;
- // } else {
- // dg.datagrid('insertRow', {
- // index: index,
- // row: {isNewRecord:true}
- // });
- // opts.editIndex = index;
- // }
- dg.datagrid('beginEdit', opts.editIndex);
- dg.datagrid('selectRow', opts.editIndex);
- if (opts.tree){
- var node = $(opts.tree).tree('getSelected');
- rows[opts.editIndex][opts.treeParentField] = (node ? node.id : 0);
- }
- opts.onAdd.call(this, opts.editIndex, rows[opts.editIndex]);
- });
- },
- saveRow: function(jq){
- return jq.each(function(){
- var dg = $(this);
- var opts = $.data(this, 'edatagrid').options;
- if (opts.editIndex >= 0){
- if (opts.onBeforeSave.call(this, opts.editIndex) == false) {
- setTimeout(function(){
- dg.datagrid('selectRow', opts.editIndex);
- },0);
- return;
- }
- $(this).datagrid('endEdit', opts.editIndex);
- }
- });
- },
- cancelRow: function(jq){
- return jq.each(function(){
- var opts = $.data(this, 'edatagrid').options;
- if (opts.editIndex >= 0){
- $(this).datagrid('cancelEdit', opts.editIndex);
- }
- });
- },
- destroyRow: function(jq, index){
- return jq.each(function(){
- var dg = $(this);
- var opts = $.data(this, 'edatagrid').options;
- var rows = [];
- if (index == undefined){
- rows = dg.datagrid('getSelections');
- } else {
- var rowIndexes = $.isArray(index) ? index : [index];
- for(var i=0; i<rowIndexes.length; i++){
- var row = opts.finder.getRow(this, rowIndexes[i]);
- if (row){
- rows.push(row);
- }
- }
- }
- if (!rows.length){
- $.messager.show({
- title: opts.destroyMsg.norecord.title,
- msg: opts.destroyMsg.norecord.msg
- });
- return;
- }
- $.messager.confirm(opts.destroyMsg.confirm.title,opts.destroyMsg.confirm.msg,function(r){
- if (r){
- for(var i=0; i<rows.length; i++){
- _del(rows[i]);
- }
- dg.datagrid('clearSelections');
- }
- });
- function _del(row){
- var index = dg.datagrid('getRowIndex', row);
- if (index == -1){return}
- if (row.isNewRecord){
- dg.datagrid('cancelEdit', index);
- } else {
- if (opts.destroyUrl){
- var idValue = row[opts.idField||'id'];
- opts.poster.call(dg[0], opts.destroyUrl, {id:idValue}, function(data){
- var index = dg.datagrid('getRowIndex', idValue);
- if (data.isError){
- dg.datagrid('selectRow', index);
- opts.onError.call(dg[0], index, data);
- return;
- }
- if (opts.tree){
- dg.datagrid('reload');
- var t = $(opts.tree);
- var node = t.tree('find', idValue);
- if (node){
- t.tree('remove', node.target);
- }
- } else {
- dg.datagrid('cancelEdit', index);
- dg.datagrid('deleteRow', index);
- }
- opts.onDestroy.call(dg[0], index, row);
- var pager = dg.datagrid('getPager');
- if (pager.length && !dg.datagrid('getRows').length){
- dg.datagrid('options').pageNumber = pager.pagination('options').pageNumber;
- dg.datagrid('reload');
- }
- }, function(data){
- opts.onError.call(dg[0], index, data);
- });
- } else {
- dg.datagrid('cancelEdit', index);
- dg.datagrid('deleteRow', index);
- opts.onDestroy.call(dg[0], index, row);
- }
- }
- }
- });
- }
- };
- $.fn.edatagrid.defaults = $.extend({}, $.fn.datagrid.defaults, {
- singleSelect: true,
- editing: true,
- editIndex: -1,
- destroyMsg:{
- norecord:{
- title:'Warning',
- msg:'No record is selected.'
- },
- confirm:{
- title:'Confirm',
- msg:'你确定要删除么?'
- }
- },
- poster: function(url, data, success, error){
- $.ajax({
- type: 'post',
- url: url,
- data: data,
- dataType: 'json',
- success: function(data){
- success(data);
- },
- error: function(jqXHR, textStatus, errorThrown){
- error({
- jqXHR: jqXHR,
- textStatus: textStatus,
- errorThrown: errorThrown
- });
- }
- });
- },
- autoSave: false, // auto save the editing row when click out of datagrid
- url: null, // return the datagrid data
- saveUrl: null, // return the added row
- updateUrl: null, // return the updated row
- destroyUrl: null, // return {success:true}
- tree: null, // the tree selector
- treeUrl: null, // return tree data
- treeDndUrl: null, // to process the drag and drop operation, return {success:true}
- treeTextField: 'name',
- treeParentField: 'parentId',
- onAdd: function(index, row){},
- onEdit: function(index, row){},
- onBeforeSave: function(index){},
- onSave: function(index, row){},
- onSuccess: function(index, row){},
- onDestroy: function(index, row){},
- onError: function(index, row){}
- });
- ////////////////////////////////
- $.parser.plugins.push('edatagrid');
- })(jQuery);
2、easyUI-创建 CRUD可编辑dataGrid(表格)的更多相关文章
- 如何用easyui+JAVA 实现动态拼凑datagrid表格(续)
前面一段时间写了一篇文章: 如何用easyui+JAVA 实现动态拼凑datagrid表格 这篇文章的话,效果是可以实现,但是经过我反复试验,还是存在一些问题的. 今天这篇文章就是向大家介绍下如何避免 ...
- 如何用easyui+JAVA 实现动态拼凑datagrid表格
先给大家看一看效果,最近一段时间都在研究这个东西. 如果我把日期间隔选宽呢?比如5月日到5月5日?下面给大家看看效果,不用担心哦 看到了吧,哈哈,这个日期都是动态生成的,下面就来跟大家分享一下这个的实 ...
- 3、easyUI-创建 CRUD可创建展开行明细编辑dataGrid(表格)
同样在上一节中讲到可以编辑的表格,现在讲一般用到的最后一个datagrid(表格)相关的展开明细可编辑的表格: 第三中表格主要应用场景在:列出表格信息,然后点击可以查看详细信息(此处是全部可以编辑,可 ...
- jQuery EasyUI 应用 – 创建 CRUD 应用(表格)
jQuery EasyUI 应用 - 创建 CRUD 应用 本节介绍如何创建CRUD应用. CRUD分别是指在做计算处理时的增加(Create).读取查询(Retrieve).更新(Update)和删 ...
- 【jQuery EasyUI系列】创建CRUD数据网格
在上一篇中我们使用对话框组件创建了CRUD应用创建和编辑用户信息.本篇我们来创建一个CRUD数据网格DataGrid 步骤1,在HTML标签中定义数据网格(DataGrid) <table id ...
- 一步步实现 easyui datagrid表格宽度自适应,效果非常好
一步步实现 easyui datagrid表格宽度自适应,效果非常好: 一.设置公共方法,使得datagrid的属性 fitColumns:true $(function(){ //初始加载,表格宽 ...
- SNF快速开发平台MVC-EasyUI3.9之-DataGrid表格控件如何增加右键菜单
如题,我们在项目开发当中会遇到需要,表格控件增加右键菜单的使用. 下面我们就以SNF框架增加右键菜单步骤如下: 1.在加载页面当中增加如下菜单定义 <div id="mm" ...
- JQuery经典小例子——可编辑的表格
可编辑的表格: 屏幕剪辑的捕获时间: 2015/8/14 9:16 HTML代码为: <!DOCTYPE html> <htmlxmlns="http://www.w3.o ...
- paip.gui控件form窗体的原理实现以及easyui的新建以及编辑实现
paip.gui控件form窗体的原理实现以及easyui的新建以及编辑实现 //////新建 与编辑 var EditForm=new Form_easyui(); if(row) ...
随机推荐
- Selenium用法示例
收录待用,修改转载已取得腾讯云授权 前言 在上一节我们学习了PhantomJS 的基本用法,归根结底它是一个没有界面的浏览器,而且运行的是 JavaScript 脚本,然而这就能写爬虫了吗?这又和Py ...
- 解决Ubuntu环境变量错误导致无法正常登录 (command 'xxx' is available in bin ls)
一.问题产生 配置JDK时,按照搜索到的一篇文章中的做法,修改了/etc/profile文件里的内容.在原内容保持不变的基础上,大致添加了以下内容: export JAVA_HOME=.... exp ...
- 常见的七大排序算法Java实现
/** * @author Javen * @Email javenlife@126.com * 2015年12月9日 */ public class Sorting { static int[] a ...
- select * from (select user())a 为什么是查询user()的意思?
步骤:1.先查询 select user() 这里面的语句,将这里面查询出来的数据作为一个结果集 取名为 a2.然后 再 select * from a 查询a ,将 结果集a 全部查询出来
- taro + iview 实现跨平台开发(App,Wap,微信小程序)
1.安装 (1)安装脚手架 npm install -g @tarojs/cli taro init myApp (2)H5端运行 npm run dev:h5 taro build --type h ...
- ODOO翻译导出窗口修正
当你辛苦修正odoo的翻译,想把它导出到其它系统的时候, 你会发现导出向导窗口无法显示下拉列表. 下面的方法修正此问题: 1.打开"开发者模式". 2.去到翻译导出向导:设置 - ...
- 在iis6里使用没有扩展名的mvc
这2天mvc第二个预览终于出来了.赶紧拿过来测试.在装了3.5的虚拟主机上运行正常.应该已经可以到能正常使用的阶段了.不过我前面一篇翻译的文章中说到,如果使用的是iis6的话就只能忍气吞声的使用带扩展 ...
- Matlab The Bisection Method
MATLAB语言 function y=f(x) y=f(x); %函数f(t)的表达式 i=0; %二分次数记数 a=a; %求根区间左端 b=b; %求根区间右端 fa=f(a); %计算f(a) ...
- Atitit.atiDataStoreService v2 新特性
Atitit.atiDataStoreService v2 新特性 1.1. V1 基础实现1 1.2. V2 增加了对 $uuid $cur_uid参数的支持1 1.3. 增加了fld ...
- script
实例 链接一个外部脚本文件: <script type="text/javascript" src="myscripts.js"></scri ...