行编辑一般用于单行数据的增删改,如果不用行编辑实现的话,对于表单数据量不大的情况,可以使用弹窗(Dialog),如果数据量比较大,也就是需要操作的数据比较多的时候,可以新开一个tab页。

  • 新增/编辑

调用DataGrid的appendRow或insertRow,appendRow在当前页最后一行新增一行空白行,appendRow在指定行新增,index从0开始计数

设置可以被编辑的行

columns: [[
{field: 'id', title: 'id', width: 100},
{field: 'jine', title: '金额', width: 100, editor: 'text'},
{field: 'fangshi', title: '领款方式', width: 100, align: 'right', editor: 'text'},
{field: 'lingkuanren', title: '领款人', width: 100, align: 'right', editor: 'text'},
{field: 'beizhu', title: '备注', width: 100, align: 'right', editor: 'text'},
{
field: 'action', title: '动作', width: 150, align: 'right',
formatter: function (value, row, index) {
var e1 = '<a href="#" class="easyui-linkbutton" onclick="editrow(this)">编辑</a> ';
var e2 = '<a href="#" class="easyui-linkbutton" onclick="saverow(this)">保存</a> ';
var e3 = '<a href="#" class="easyui-linkbutton" onclick="deleterow(this)">删除</a> ';
var e4 = '<a href="#" class="easyui-linkbutton" onclick="cancelrow(this)">取消</a> ';
return e1 + e2 + e3 + e4;
}
}
]],

添加editor属性

function getRowIndex(target) {
var tr = $(target).closest('tr.datagrid-row');
return parseInt(tr.attr('datagrid-row-index'));
} //编辑
function editrow(target) {
$('#lkd-datagrid').datagrid('beginEdit', getRowIndex(target));
} //新增
function insert() {
var row = $('#lkd-datagrid').datagrid('getSelected');
if (row) {
var index = $('#lkd-datagrid').datagrid('getRowIndex', row);
} else {
index = 0;
}
$('#lkd-datagrid').datagrid('insertRow', {
index: index,
row: {
jine: 100,
fangshi: 1
}
});
$('#lkd-datagrid').datagrid('selectRow', index);
$('#lkd-datagrid').datagrid('beginEdit', index);
}

  • 保存
function saverow(target) {
console.log("Save Index:" + getRowIndex(target));//要保存的元素的索引,0 开始计数
$('#lkd-datagrid').datagrid('endEdit', getRowIndex(target));
} endEdit方法调用后,会触发
onAfterEdit: function (index, row) {
row.editing = false;
updateActions(index);
},
function updateActions(index) {
$('#lkd-datagrid').datagrid('updateRow', {
index: index,
row: {}
});
var rows = $("#lkd-datagrid").datagrid("getRows");
var row = rows[index];
console.log(row);//ajax调用
} 完整前端代码如下
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%
String homePage = request.getContextPath();
%>
<%--领款单网格--%>
<div id="lkd-datagrid" fit="true"></div>
<script type="text/javascript">
$('#lkd-datagrid').datagrid({
// title: '领款单',
url: "<%=homePage%>/t00LkdController/lkd.ajax?get",
pagination: true,
// iconCls: 'icon-add',
singleSelect: true,
idField: 'id',
fit: true,
toolbar: [{
iconCls: 'icon-add',
handler: function () {
insert();
}
}],
columns: [[
{field: 'id', title: 'id', width: 100},
{field: 'jine', title: '金额', width: 100, editor: 'text'},
{field: 'fangshi', title: '领款方式', width: 100, align: 'right', editor: 'text'},
{field: 'lingkuanren', title: '领款人', width: 100, align: 'right', editor: 'text'},
{field: 'beizhu', title: '备注', width: 100, align: 'right', editor: 'text'},
{
field: 'action', title: '动作', width: 150, align: 'right',
formatter: function (value, row, index) {
var e1 = '<a href="#" class="easyui-linkbutton" onclick="editrow(this)">编辑</a> ';
var e2 = '<a href="#" class="easyui-linkbutton" onclick="saverow(this)">保存</a> ';
var e3 = '<a href="#" class="easyui-linkbutton" onclick="deleterow(this)">删除</a> ';
var e4 = '<a href="#" class="easyui-linkbutton" onclick="cancelrow(this)">取消</a> ';
return e1 + e2 + e3 + e4;
}
}
]],
onBeforeEdit: function (index, row) {
row.editing = true;
updateActions(index);
},
onAfterEdit: function (index, row) {
row.editing = false;
updateActions(index);
},
onCancelEdit: function (index, row) {
row.editing = false;
updateActions(index);
}
});
function updateActions(index) {
$('#lkd-datagrid').datagrid('updateRow', {
index: index,
row: {}
});
var rows = $("#lkd-datagrid").datagrid("getRows");
var row = rows[index];
console.log(row);//ajax调用
}
function getRowIndex(target) {
var tr = $(target).closest('tr.datagrid-row');
return parseInt(tr.attr('datagrid-row-index'));
}
function editrow(target) {
$('#lkd-datagrid').datagrid('beginEdit', getRowIndex(target));
}
function deleterow(target) {
$.messager.confirm('提示', '确认删除?', function (r) {
if (r) {
//被删除数据在当前网格中的顺序索引,从0开始计数
var index = getRowIndex(target);
var delId = $(target).closest('tr.datagrid-row').find("td").find("div").html();
console.log("删除ID:" + delId);
var dateJson = {
id: delId
};
$.ajax({
type: "POST",
url: "<%=homePage%>/t00LkdController/lkd.ajax?del",
data: JSON.stringify(dateJson),
cache: false,
dataType: "json",
contentType: 'application/json;charset=utf-8',
success: function (data) {
if ("-1" == data.st) {
$.messager.alert('警告', "删除失败:" + data.msg);
} else {
$('#lkd-datagrid').datagrid('deleteRow', index);
}
} }) }
});
}
    function saverow(target) {
console.log("Save Index:" + getRowIndex(target));//要保存的元素的索引,0 开始计数
$('#lkd-datagrid').datagrid('endEdit', getRowIndex(target));
} function cancelrow(target) {
$('#lkd-datagrid').datagrid('cancelEdit', getRowIndex(target));
}
function insert() {
var row = $('#lkd-datagrid').datagrid('getSelected');
if (row) {
var index = $('#lkd-datagrid').datagrid('getRowIndex', row);
} else {
index = 0;
}
$('#lkd-datagrid').datagrid('insertRow', {
index: index,
row: {
jine: 100,
fangshi: 1
}
});
$('#lkd-datagrid').datagrid('selectRow', index);
$('#lkd-datagrid').datagrid('beginEdit', index);
}
</script>

数据表格 - DataGrid - 行编辑的更多相关文章

  1. jquery-easyui 中表格的行编辑功能

    具体实现代码如下: <table id="tt"></table> $('#tt').datagrid({ title:'Editable DataGrid ...

  2. LayUI之table数据表格获取行、行高亮等相关操作

    前言 目前LayUI数据表格既美观有不乏一些实用功能.基本上表格应有的操作已经具备,LayUI作者[贤心]肯定是煞费苦心去优化,此处致敬.但是实话实话,如果单纯那数据表格功能来说,EasUI的数据表格 ...

  3. easyUI 数据表格datagrid的使用

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  4. [转载]EasyUI中数据表格DataGrid添加排序功能

    我们这里演示的是EasyUI数据表格DataGrid从服务器端排序功能,因为觉的本地数据排序没有多大的作用,一般我们DataGrid不会读取全部数据,只会读取当前页的数据,所以本地数据排序也只是对当前 ...

  5. 数据表格 - DataGrid - 查询

    toolbar头部工具栏 <script type="text/javascript"> $(function () { $("#datagrid" ...

  6. EasyUI datagrid 行编辑

    一.HTML: <div class="info"> <div class="info_tt"> <span class=&quo ...

  7. jquery easy ui 1.3.4 数据表格(DataGrid)(8)

    8.1.创建DataGrid html代码 <table id="dg"></table> $("#dg").datagrid({ // ...

  8. 关于EasyUI DataGrid行编辑时嵌入时间控件

    本人做一个名为“安徽中控”项目时,为快速开发基础数据增删改模块,遂采用EasyUIDatagrid将所有增删改查的操作都集中于表格中,并且所有增删改查操作都集中于泛型对象,从而不必为每个表写具体的增删 ...

  9. jquery-easyui中表格的行编辑功能

    datagrid现在具有行编辑能力了,使用时只须在columns中为需要编辑的列添加一个editor属性,编辑保存时同时具有数据校验能力. 看一个例子效果图: 代码如下: $('#tt').datag ...

随机推荐

  1. 【系统架构】缓存Memcache 使用原子性操作add,实现并发锁

    原文地址 memcache中Memcache::add()方法在缓存服务器之前不存在key时, 以key作为key存储一个变量var到缓存服务器.我们使用add来向服务器添加一个键值对应,如果成功则添 ...

  2. PHP基本语法和输出语句方式

  3. 今天写项目时,突然发现canvas的一些公式不记得了,所以整理了一番,分享给大家。

    Canvas 标签<canvas></canvas> 默认宽300,高150,不用用Css设置宽高 获取方法var ctx = cas.getcontext("2d& ...

  4. arcgis server10.2.2发布地图基础服务的具体步骤

    1.直接打开制作好的.mxd文档,比如这里: 2.打开mxd文档之后,打开菜单:file-share as -services 弹出地图发布服务的界面: 点击publish之后,耐心的等待一段时间,地 ...

  5. AndroidTV版(乐视超3 X55)root,将自己的软件设置为开机自启、系统软件,卸载系统应用等问题总结

    最近开发android软件客户要安装在乐视TV上,而且要求是开机自启.我很天真的以为写一个广播接收类接收开机广播就可以了,可是根本不会,有的设备就是不可以接收到开机广播,于是各种百度搜索.大神们说是只 ...

  6. Android中的AlertDialog使用示例四(多项选择确定对话框)

    在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,AlertDialog实现方法为建造者模式. ...

  7. Android 学习心得 快速排序

    快速排序(Quicksort) 是对冒泡排序的一种改进,它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分 ...

  8. 初识JavaScript 变量, 操作符, 数组

    这里讲的不会太多, 因为所有的语言都是一样的, 一些基本的东西, 所以就随便写写. 变量 变量就是可变的量, 编程角度理解就是用于存储某种/某些数值的存储器. 我们可以把变量具象理解为一个盒子, 而我 ...

  9. 了解HTML CSS格式化排版 文字排版

    这里简单的写一些涉及到字体排版中常用到的属性, 大家可以学习查看, 也可以mark下以后看. font-family: "Micrsoft Yahei"; 设置字体 font-si ...

  10. iOS --NSAttributedString

    字符属性可以应用于 attributed string 的文本中. 文/iOS_成才录(简书作者) 原文链接:http://www.jianshu.com/p/03a741246737 著作权归作者所 ...