jQuery MiniUI

 找回密码
 立即注册
楼主: langben
打印 上一主题 下一主题

[求助]Inline Grid 静态删除的办法 [复制链接]

Rank: 6Rank: 6

11#
发表于 2014-2-24 16:45:25 |只看该作者
langben 发表于 2014-2-24 16:35
弄明白了。
tree.getChanges();
tree.getData();

刚测试了一下,理解应该是没错了。
当我改成tree.getChanges();  可以正常删除节点, 但是新增节点又出问题了。  会将子节点多生成一份为父节点。   换成tree.getData();才能正常新增。   

新增和删除不能共存么?

Rank: 6Rank: 6

12#
发表于 2014-2-24 17:22:27 |只看该作者
  1. function mini_updateRow() {            
  2.             var miniGrid = mini.get("TaskGrid");
  3.             //miniGrid.commitEdit();
  4.             var data = miniGrid.getChanges();  //miniGrid.getData();    //这儿是获取数据的地方。
  5.             var json = mini.encode(data);
  6.            
  7.             alert(json);
  8.             return;

  9.             miniGrid.loading("正在用力的保存中,请稍后......");

  10.             $.ajax({
  11.                 url: "/Control/Project.ashx?method=SaveCollTaskInfo",
  12.                 data: { data: json },
  13.                 type: "post",
  14.                 success: function (text) {
  15.                     miniGrid.reload();
  16.                 },
  17.                 error: function (jqXHR, textStatus, errorThrown) {
  18.                     alert(jqXHR.responseText);
  19.                 }
  20.             });
  21.         }
复制代码





保存的JS方法, 改成了miniGrid.getChanges();获取数据。
但为啥父节点下也会生成一样的数据?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

13#
发表于 2014-2-24 17:26:08 |只看该作者
langben 发表于 2014-2-24 17:22
保存的JS方法, 改成了miniGrid.getChanges();获取数据。
但为啥父节点下也会生成一样的数据?
...

树形 的增删改保存是需要把这棵树的数据发送到后台的
不要用getChanges

Rank: 6Rank: 6

14#
发表于 2014-2-24 17:41:50 |只看该作者
本帖最后由 langben 于 2014-2-24 17:47 编辑
felt 发表于 2014-2-24 17:26
树形 的增删改保存是需要把这棵树的数据发送到后台的
不要用getChanges

如果用miniGrid.getData(); 只能识别insert和modified,  删除的节点的children值为空。  后台就无法识别该删除哪些了。   也就是说miniGrid.getData(); 取得的数据没有remove  。。  
咋整呢?

Rank: 8Rank: 8

15#
发表于 2014-2-24 17:48:44 |只看该作者
langben 发表于 2014-2-24 17:41
如果用miniGrid.getData(); 只能识别insert和modified,  删除的节点的children值为空。  后台就无法识别 ...

按照我给你的例子去做tree的增删改

另外,getChanges()获取出来的,你上面的截图是正确的, children作为你一个修改的节点的属性字段,当然存在了.里面也当然存在他的子节点数据

getChanges()获取出来的是一个数组,他里面的数据不分层次,所以你不用管他的children,你只需要遍历这个数组,区分他的里面的每一个项的_state就行了,不需要你再去遍历children的项,children有没有也不影响你

Rank: 6Rank: 6

16#
发表于 2014-2-24 18:12:18 |只看该作者
factory 发表于 2014-2-24 17:48
按照我给你的例子去做tree的增删改

另外,getChanges()获取出来的,你上面的截图是正确的, children作为你 ...

也就是说我只需要使用getData();就行了吗?
我用你的DEMO完全COPY出来,不修改任何代码, 然后将function saveData()方法中的alert(在线演示....)改为alert(json), 监控getData()取到的数据,确实是没有_state=removed 这一项。只有insert和modified。
DEMO是:
http://www.miniui.com/demo/index.html#src=tree/treeCRUD.html

Rank: 8Rank: 8

17#
发表于 2014-2-24 18:26:03 |只看该作者
langben 发表于 2014-2-24 18:12
也就是说我只需要使用getData();就行了吗?
我用你的DEMO完全COPY出来,不修改任何代码, 然后将function ...

getData()获取的是所有的现有tree数据,也就是你界面上展现的相关数据,如果你remove掉,自然也不在getData()里面了
所以需要通过var removed = tree.getChanges("removed");
来获取删除的数据,官网的在线demo是不完整的,我们也说明了的
"在线演示,不提供保存,下载开发包内有此功能。"

你去看下载的试用包里面有这样的代码
var data = tree.getData();
    var removed = tree.getChanges("removed");
    var paramsObj = {
        data: mini.encode(data),
        removed: mini.encode(removed)
    }

Rank: 6Rank: 6

18#
发表于 2014-2-26 16:45:32 |只看该作者
factory 发表于 2014-2-24 18:26
getData()获取的是所有的现有tree数据,也就是你界面上展现的相关数据,如果你remove掉,自然也不在getData( ...

谢谢,已解决。

Archiver|普加软件

GMT+8, 2024-5-18 16:12 , Processed in 1.021909 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部