jQuery MiniUI

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

treeGrid 根据ajax请求结果决定是否完成拖拽 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2013-7-18 15:00:49 |只看该作者 |倒序浏览
需求: 选中treegrid一行进行拖拽时,使用ajax请求后台,根据返回的结果 决定是否可以拖拽
问题:由于ajax是异步的 所以当拖拽时触发beforedrop函数  treegrid和请求同时执行 完成了拖拽 所以当ajax返回结果后 e.cancel=true;没有效果。 如何才能将拖拽的node退回原有位置?

Rank: 8Rank: 8

沙发
发表于 2013-7-18 15:26:20 |只看该作者
在success里面,tree.setAllowDrag(true);允许托转
tree.setAllowDrop(true); 允许投放

Rank: 3Rank: 3

板凳
发表于 2013-7-18 16:03:22 |只看该作者
本帖最后由 muzizhuben 于 2013-7-18 16:05 编辑
factory 发表于 2013-7-18 15:26
在success里面,tree.setAllowDrag(true);允许托转
tree.setAllowDrop(true); 允许投放
你说的方法 我测试后 仍然无效果。
现在如下方式写的话 可以返回原来位置
var node = e.dragNode;
        var targetNode = e.dropNode;
        var beforeNode=tree.getRow(tree.indexOf(node)-1) ;
        $.ajax({
                url : "。。。",
                type : "post",
                success : function(text) {
                        if (text.rescode == 0) {
                        } else {
                                if(!beforeNode){        //上一个节点不存在则表明是第一条数据
                                        tree.moveNode(tree.getSelected(),tree.getRow(0),"before");
                                }
                                else{
                                        tree.moveNode(tree.getSelected(),beforeNode,"after");
                                }
                        }
                },
                error : function(jqXHR, textStatus, errorThrown) {
                        
                }
        });
问题:如节点:1>2>3   拖动2到1外面 不允许拖拽所以 2返回到1的下面  但是这时  没有了层次标识  请问如何解决呢?

Rank: 8Rank: 8

地板
发表于 2013-7-18 16:19:58 |只看该作者
muzizhuben 发表于 2013-7-18 16:03
你说的方法 我测试后 仍然无效果。
现在如下方式写的话 可以返回原来位置
var node = e.dragNode;

只有当成功拖拽了,才会把原有节点,也就是2,从1下面删除掉。
所以不会出现你说的2拖动出来了,但是没拖动成功,所以不知道原有位置的问题

Rank: 3Rank: 3

5#
发表于 2013-7-18 16:26:02 |只看该作者
factory 发表于 2013-7-18 16:19
只有当成功拖拽了,才会把原有节点,也就是2,从1下面删除掉。
所以不会出现你说的2拖动出来了,但是没拖 ...

恩.... 你没明白我的意思  现在问题已解决   就是将ajax改成同步的 谢谢版主

Rank: 8Rank: 8

6#
发表于 2013-7-18 16:31:45 |只看该作者
muzizhuben 发表于 2013-7-18 16:26
恩.... 你没明白我的意思  现在问题已解决   就是将ajax改成同步的 谢谢版主
...

好的,不客气

Archiver|普加软件

GMT+8, 2024-5-2 06:24 , Processed in 1.032451 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部