行编辑一般用于单行数据的增删改,如果不用行编辑实现的话,对于表单数据量不大的情况,可以使用弹窗(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. eclipse js 报错解决办法

    最近项目中的js一直红叉叉,本人本来就是那种看见回收站有东西想清理的那种强迫症患者, 所以对于这种红叉叉更是心烦.这个我已经忍了好久了.今天 见这哥们犀利的解决了这个eclipes的bug.很是激动, ...

  2. Tomcat下使用c3p0配置jndi数据源

    下载c3p0包: 下载地址:https://sourceforge.net/projects/c3p0/files/?source=navbar 解压后得到包:c3p0-0.9.2.jar,mchan ...

  3. AntiModerate – 渐进式图片加载的 JavaScript 库

    AntiModerate 是一个渐进式图片加载的 JavaScript 库.我们多数看到的图片显示模式,都是从上到下逐渐显示的,这是“标准式”图像:而有的图片是先出现一个很低分辨率的图像轮廓,类似加了 ...

  4. jQuery插件之——简单日历

    最近在研究js插件的开发,以前看大神们,对插件都是信手拈来,随便玩弄,感觉自己要是达到那种水平就好了,就开始自己研究插件开发了.研究了一段时间之后,就开始写了自己的第一个日历插件,由于是初学插件开发, ...

  5. ArcGIS Server的Tile的松散型存储(Exploded)

    protected override void GetTileSource(int level, int row, int col, Action<System.Windows.Media.Im ...

  6. SharePoint 2013 状态机工作流之UpdateItemActivity

    没什么可说的,一个Activity的使用介绍,其他类似的Activity也可以参考这个使用. 1.添加ApplyActivation和UpdateItemActivity,在onWorkflowAct ...

  7. iOS 10 都有什么改变?

    iOS 10 都有什么改变? 看这一个贴就够了 最全面的试用 苹果在 WWDC 2016 发布会上正式发布了 iOS 10 操作系统,iOS 与 macOS.tvOS 和 watchOS 构建了苹果四 ...

  8. Eclipse 常用快捷键 For MAC

    Eclipse 常用快捷键 For MAC Option + Command + X: 运行Command + O:显示大纲Command + 1:快速修复Command + D:删除当前行Comma ...

  9. 【原】iOS动态性(三) Method Swizzling以及AOP编程:在运行时进行代码注入

    概述 今天我们主要讨论iOS runtime中的一种黑色技术,称为Method Swizzling.字面上理解Method Swizzling可能比较晦涩难懂,毕竟不是中文,不过你可以理解为“移花接木 ...

  10. IOS RunLoop浅析 二

    上一篇我们说了runloop 的几种模式,那么我们在模式中又要做些什么呢??? 模式中有三个模块: 事件源(输入源) Source Source: 按照官方文档分类 Port-Based Custom ...