jQuery MiniUI

 找回密码
 立即注册
查看: 7801|回复: 17
打印 上一主题 下一主题

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

Rank: 6Rank: 6

跳转到指定楼层
楼主
发表于 2014-2-24 12:19:32 |只看该作者 |倒序浏览
本帖最后由 langben 于 2014-2-24 12:27 编辑


我想先删除行后点保存任务,再真正从数据库删除记录。
这个要怎么弄呢?
我尝试用DataGrid动态删除是可以做到的, 但不是很喜欢再单独写一个remove的后台方法。
现在的增删改查我都是模拟【CellValidation New!】  这个组件封装了save方法,前台把所有操作完成后统一提交到后台代码中处理。

以下是我写的JS, 但提交了,后台收不到删除的信息。。  
  1. function mini_gridRemoveRow(e) {
  2.             var tree = mini.get("TaskGrid");
  3.             var node = tree.getSelectedNode();

  4.             if (node) {
  5.                 if (confirm("小心,确定删除选中任务和所有子任务?")) {
  6.                     tree.removeNode(node);
  7.                     //var rows = tree.getSelecteds();
  8.                     //if (rows.length > 0) {
  9.                     //    tree.removeNode(rows, true);
  10.                     //}
  11.                 }
  12.             }
  13.         }
复制代码


附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2014-2-24 12:58:24 |只看该作者
树形的增删改看我们demo,我们例子也没有单独写个后台的remove的方法啊. 只有一个save方法

Rank: 6Rank: 6

板凳
发表于 2014-2-24 14:29:12 |只看该作者
factory 发表于 2014-2-24 12:58
树形的增删改看我们demo,我们例子也没有单独写个后台的remove的方法啊. 只有一个save方法 ...
  1. var miniGrid = mini.get("TaskGrid");
  2.         function mini_updateRow() {
  3.             var data = miniGrid.getData();
  4.             var json = mini.encode(data);
  5.             alert(json);
  6.             return;
  7.             miniGrid.loading("正在用力的保存中,请稍后......");

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


为啥我只删除一个节点, 点保存的时候监控到的JSON却是整个表单的串呢。 而已删除的那个节点值不在这个JSON串里面。
应该怎么处理?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

地板
发表于 2014-2-24 15:46:06 |只看该作者
langben 发表于 2014-2-24 14:29
为啥我只删除一个节点, 点保存的时候监控到的JSON却是整个表单的串呢。 而已删除的那个节点值不在这个 ...

树形 的增删改保存是需要把这棵树的数据发送到后台的,
因为树形比较特殊,他跟表格数据不同, 表格的话,没有层级,顺序就是某个字段排序即可,但是tree涉及到父子关系, 节点顺序问题,而节点顺序也是在某个父节点下的顺序,所以需要把整个树发送到后台,这样才能获取到正确层级顺序. 尤其是你树节点拖动了前后顺序之后

Rank: 6Rank: 6

5#
发表于 2014-2-24 15:47:37 |只看该作者
我的意思就是想点击删除按钮的时候,只是移去UI层的记录。 只有点保存按钮的时候,才真正删除后台数据库的记录。

Rank: 8Rank: 8

6#
发表于 2014-2-24 15:48:59 |只看该作者
langben 发表于 2014-2-24 15:47
我的意思就是想点击删除按钮的时候,只是移去UI层的记录。 只有点保存按钮的时候,才真正删除后台数据库的 ...

你点remove()就是UI层的删除. 你只要不保存,你刷新下界面,数据还是在的,miniui是JS控件,真正的删除肯定是后台操作数据库删除,所以只要你不去后台执行删除,数据不会真正被删除的

Rank: 6Rank: 6

7#
发表于 2014-2-24 15:51:29 |只看该作者
factory 发表于 2014-2-24 15:48
你点remove()就是UI层的删除. 你只要不保存,你刷新下界面,数据还是在的,miniui是JS控件,真正的删除肯定是 ...

是的。但我点击保存的时候,已删除的记录没有传到后台。 我就取不到对应的ID号,无法做删除啊。

Rank: 6Rank: 6

8#
发表于 2014-2-24 15:54:30 |只看该作者
langben 发表于 2014-2-24 15:51
是的。但我点击保存的时候,已删除的记录没有传到后台。 我就取不到对应的ID号,无法做删除啊。
...

现在移去UI层的记录可以做到 。 没有问题的。 tree.removeNode(node);
现在的问题是: 当我编辑完所有数据点击保存时,  这些被移除的记录并没有提交到后台代码中, 而是将当前UI层存在的记录拼成了JSON传到后台。   等于没有做什么何删除操作了。

Rank: 8Rank: 8

9#
发表于 2014-2-24 15:59:10 |只看该作者
langben 发表于 2014-2-24 15:54
现在移去UI层的记录可以做到 。 没有问题的。 tree.removeNode(node);
现在的问题是: 当我编辑完所有数 ...

不会的,tree的增删改,你参考这个例子:
http://www.miniui.com/demo/index.html#src=tree/treeCRUD.html
http://www.miniui.com/demo/index.html#src=tree/treeCRUD2.html

Rank: 6Rank: 6

10#
发表于 2014-2-24 16:35:52 |只看该作者
factory 发表于 2014-2-24 15:59
不会的,tree的增删改,你参考这个例子:
http://www.miniui.com/demo/index.html#src=tree/treeCRUD.html
h ...

弄明白了。
tree.getChanges();
tree.getData();
是这两个方法的概念我弄混了。。
第一个是获取有变更的数据。
第二个是获取当前UI所有存在的数据。

我的理解没错吧?

Archiver|普加软件

GMT+8, 2024-11-24 22:32 , Processed in 1.039405 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部