treegrid添加新行和删除行的方法:

  添加和删除直接调用这两个方法即可,修改的方法有点特殊,treegrid没有提供update方法,设置行为编辑状态,$('#obj_tgd_objectlist').treegrid('select', index.PLM_ID)
     .treegrid('beginEdit', index.PLM_ID);直接在行上编辑

添加新行:

 function obj_tgd_append() {
var obj_node = $('#obj_tgd_objectlist').treegrid('getSelected');
if (obj_node) {
if (obj_endEditing(obj_node)) {
var obj_plm_id = obj_editingId = guid().toUpperCase();
$('#obj_tgd_objectlist').treegrid('append', {
parent: obj_node.PLM_ID,//treegrid 父id 必须指定
data: [{
PLM_ID: obj_plm_id,//treegrid id
PLM_PID: obj_node.PLM_ID,
PLM_LABLE: ''//tree节点名称
}]
});
$('#obj_tgd_objectlist').treegrid('beginEdit', obj_editingId);
}
}
else { }
}

删除行:

function obj_tgd_removeit() {
var obj_node = $('#obj_tgd_objectlist').treegrid('getSelected');
if (obj_node) {
if (obj_endEditing(obj_node)) {
$.messager.confirm('确认', '您确定要删除此选中行吗?', function (r) {
obj_editingId = obj_node.PLM_ID;
if (r) {
obj_tgd = $('#obj_tgd_objectlist');
obj_tgd.treegrid('cancelEdit', obj_editingId).treegrid('remove', obj_editingId);//obj_editingId 指定删除的行
obj_editingId = undefined;
}
});
}
}
}

批量保存:

 function save() {
var obj_tgd = $('#obj_tgd_objectlist');
obj_editingId == undefined ? undefined : obj_endEditing('');
if (obj_tgd.treegrid('getChanges').length == 0)//未操作,不保存
return;
//同datagrid 一样 分别取修改、新增和删除的行数据
var obj_inserted = JSON.stringify(obj_tgd.treegrid('getChanges', "inserted"));
var obj_deleted = JSON.stringify(obj_tgd.treegrid('getChanges', "deleted"));
var obj_updated = JSON.stringify(obj_tgd.treegrid('getChanges', "updated")); //otype: this[frmname + 'savetype'],
var data = {
add: obj_inserted,
update: obj_updated,
delete: obj_deleted, };
alert(JSON.stringify(data));
$.ajax({
type: "POST",
url: 'Home/Save',
dataType: "json",
data: data,
success: function (rarg) {
if (rarg.err == undefined) {
$.messager.show({ title: '提示',
msg: '保存成功.',
timeout: 3000,
showType: 'slide'
});
}
else $.messager.alert('提示', rarg.err);
//refreshTab();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$.messager.alert('提示', '保存失败,ajax访问失败');
}
});

easyui treegrid增、删、改及批量保存的更多相关文章

  1. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  2. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  3. C# ADO.NET (sql语句连接方式)(增,删,改)

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  4. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  5. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  6. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  7. ADO.NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...

  8. 第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据

    第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform ...

  9. StringBuilder修改字符串内容,增,删,改,插

    package seday01;/** * 字符串不变对象特性只针对字符串重用,并没有考虑修改操作的性能.因此String不适合频繁修改内容. * 若有频繁修改操作,使用StringBuilder来完 ...

随机推荐

  1. BZOJ 3790 神奇项链(manacher+DP+树状数组)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3790 [题目大意] 问最少用几个回文串可以构成给出串,重叠部分可以合并 [题解] 我们 ...

  2. BZOJ 1115 [POI2009]石子游戏Kam(阶梯博弈)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1115 [题目大意] 有N堆石子,除了第一堆外,每堆石子个数都不少于前一堆的石子个数. ...

  3. Java高级架构师(一)第33节:Nginx常用核心模块指令

    error_log:错误日志级别 http://www.nginx.cn/doc/  Nginx中文文档 # 并发总数是 worker_processes 和 worker_connections 的 ...

  4. HDU 4655 Cut Pieces(2013多校6 1001题 简单数学题)

    Cut Pieces Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total ...

  5. sourceinsight常用快捷键

    Alt+l       激活语法窗口 ,搜索语法(当前打开文件的函数.宏定义搜索输入区域), Alt+,  Alt+.  分别表示后退工作区.前进工作区 shift+F5   标记一个单词 shift ...

  6. loadrunner11操作手册

    一:操作 或者 增加用户数的方法 一:仅对单个场景增加用户数 二:同时对多个场景增加用户数 第一步: 第二步: 二:脚本编写示例 Action() { int nHttpRetCode; web_re ...

  7. Android内存优化3 了解java GC 垃圾回收机制1

    开篇废话 如果我们想要进行内存优化的工作,还是需要了解一下,但这一块的知识属于纯理论的,有可能看起来会有点枯燥,我尽量把这一篇的内容按照一定的逻辑来走一遍.首先,我们为什么要学习垃圾回收的机制,我大概 ...

  8. Codeforces Round #313 (Div. 1) Gerald's Hexagon

    http://codeforces.com/contest/559/problem/A 题目大意:按顺序给出一个各内角均为120°的六边形的六条边长,求该六边形能分解成多少个边长为1的单位三角形. 解 ...

  9. CMakeFile命令之file

    file:文件操作命令. file(WRITE filename "message towrite"... ) WRITE 将一则信息写入文件’filename’中,如果该文件存在 ...

  10. linux xfs文件系统无法用readdir获取dirent文件类型d_type则用stat获取暨stat函数讲解

    stat函数讲解 表头文件:    #include <sys/stat.h>             #include <unistd.h>定义函数:    int stat ...