easyUI的getChanges中的inserted
easyUI中的datagrid、treegrid编辑了数据,可以用getChanges命令来获取更新情况。按道理,有"inserted"、"updated"、"deleted"三种类型,增改删嘛,但不知为何,"inserted"我从来没有获取到过。
deleted比较没有问题,只要有remove,就可以获取;
updated的话,有修改也可以。
对于inserted,有个变通的办法是,新增的时候,选中新增行,然后beginEdit,再endEdit;这样该行即可进入updated矣。有一个问题要注意:datagrid、treegrid(其实treegrid继承自datagrid)每行会有个主键,比如id,用于识别行。那么我们只要在新增行的时候,将此id赋一个唯一值,再乘以-1,提交到后台,就可知该行是insert而不是update,从而不会与其他update行混淆。
还有一个注意的问题,就是这些新增行的数据不能齐全,要至少有一个字段没有值,这样才能进入到update里,真奇怪。
function InsertItem(nodes,groupAId, node) {
var _id = getUtc() * -1;
var _data = {
'id': _id
, 'name': node.text
//, 'seq': 0 //空出一个值不赋,这样才能进入update。原因不明
, 'isValid': true
, 'pId': node.pId
, 'itemId': node.itemId
, 'isGroup': false
};
_grid.treegrid('append', {
parent: groupAId,
data: [_data]
});
_grid.treegrid('select', _data.id);
_grid.treegrid('beginEdit', _data.id);
_grid.treegrid('endEdit', _data.id);
return _id;
}
猜想:
通常我们用数据库的主键id来做datagrid的主键,其实可以分开来,多设一个字段给easyUI,比如设一个eid,用eid来做datagrid的行主键;从后台过来的时候,eid == id。而新增的时候,新增行的eid被赋予唯一值,而id则不赋值。这样的好处是
1)有可能在getChanges的时候,可以获取到inserted;
2)不用将 id 赋予一个负值这么折腾
但不想专门去试这个东西。不值得。
easyUI的getChanges中的inserted的更多相关文章
- [easyui] - 在easyui的table中展示提示框
因为在easyui的table中字段过多,而无法展示全时,被迫只能使用这个方法. 使用方式: 在 $('#dg').datagrid({ 后的 queryParams: form2Json('sear ...
- 触发器中的inserted表和deleted表
触发器语句中使用了两种特殊的表:deleted 表和 inserted 表.Microsoft? SQL Server 2000 自动创建和管理这些表.可以使用这两个临时的驻留内存的表测试某些数据修改 ...
- 在EasyUI的DataGrid中嵌入Combobox
在做项目时,须要在EasyUI的DataGrid中嵌入Combobox,花了好几天功夫,在大家的帮助下,最终看到了它的庐山真面: 核心代码例如以下: <html> <head> ...
- SQL触发器中的inserted表和deleted表
开发也有年头了,但是触发器确实用的比较少,但是无容置疑触发器确实不错, 最近项目要求需要用到的触发器特别多.频繁,觉得很有必要记录和积累下. 在触发器语句中用两个特殊的表一个是deleted表和ins ...
- 项目EasyUi和JS中遇到的问题总汇
近期因为项目用到EasyUi,曾经仅仅是听过,可是没有详细用过.仅仅能一边学一边做.如今将做的过程中遇到的一些难点总结例如以下,以备后用: EsayUi使用: Json格式:key:value,key ...
- jQqery EasyUI dategrid行中多列数据的可编辑操作
最近的项目中需要在前台dategrid列表中直接修改某些列的数据,并且修改后的数据需要不通过后台而自动更新在列表中. 带着这一问题开始寻找实现的思路,首先想到的就是去jQqery EasyUI官网找例 ...
- jQuery EasyUI DataGrid API 中文文档
扩展自$.fn.panel.defaults,用 $.fn.datagrid.defaults重写了 defaults . 依赖 panel resizable linkbutton pagi ...
- EasyUI在MVC4中需要部分刷新页面时load()后页面变形问题!
最近在使用MVC4与EasUI过程中遇到些容易导致界面变形的问题,纠结了很久,但其实当发现问题在哪里时,倒觉得最终还是自己对MVC4的概念没把握好,OK,show time. 本示例Contact ...
- EasyUI在window中使用kindeditor 4.1.10在IE9中不能回显、获得焦点编辑的问题
描述 :kindeditor4.1.10版本是当前最新的版本,在浏览器兼容性和功能方面都是值得一赞的,在开发中能方便快捷的满足一些开发需求. 问题 : 问题总是有的. 在使用过程中,遇到EasyU ...
随机推荐
- Hihocoder #1938 最大权闭合子图模板
这里的讲解很不错,适合作为入坑题: Hihocoder#1938 代码: #include<algorithm> #include<iostream> #include< ...
- Java核心技术卷1 第三章
1. Java区分大小写,下一段源代码中,关键字public称为访问修饰符,用于控制程序的其他部分对于这段代码的访问级别,关键字class表明Java程序中的全部内容都包含在类里面. 标准的类名命名规 ...
- (十)python3 生成器
生成器(generator):在 Python 中,不必创建完整的 list,从而节省大量的空间.一边循环一边计算的机制. 创建一个 generator,有很多种方法.第一种方法很简单,只要把一个列表 ...
- [Android] java代码无错误,但跳转失败
今天在调代码的时候,出现了这样的问题,我晕了半天,才找到解决办法. 查看日志发现:Initialize Binary Program Cache: Load Failed 从来没见过这种问题,Java ...
- python书籍推荐:Python数据科学手册
所属网站分类: 资源下载 > python电子书 作者:today 链接:http://www.pythonheidong.com/blog/article/448/ 来源:python黑洞网 ...
- time | sys | os 模块,递归删除文件,项目分析
一,复习 ''' 1.跨文件夹导包 - 不用考虑包的情况下直接导入文件夹(包)下的具体模块 2.__name__: py自执行 '__main__' | py被导入执行 '模块名' 3.包:一系列模块 ...
- Far Relative’s Problem (贪心 计算来的最多客人)
Description Famil Door wants to celebrate his birthday with his friends from Far Far Away. He has n ...
- hive 删除表内容
TRUNCATE:truncate用于删除所有的行,这个行为在hive元存储删除数据是不可逆的delect:用于删除特定行条件,你可以从给定表中删除所有的行insert overwrite table ...
- Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition)只有A题和B题
连接在这里,->点击<- A. Bear and Game time limit per test 2 seconds memory limit per test 256 megabyte ...
- 2017 CCPC 杭州 HDU6265B 积性函数
题目链接 http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdf B题 数论题 h(n)=∑ d|n φ(d) × ...