ztree拖拽排序后维护数据库中的排序字段

//捕获节点被拖拽放下之前的事件回调函数,并且根据返回值确定是否允许拖拽完成(只允许同一父节点下的拖拽排序)
function zTreeBeforeDrop(treeId, treeNodes, targetNode, moveType) {
    var parentTreeNode = treeNodes[0].getParentNode();
    var parentTargetNode = targetNode.getParentNode();
    if (parentTreeNode.tId !== parentTargetNode.tId) {
        return false;
    }
    return true;
};

//拖拽排序结束后的回调(维护seq)
function zTreeOnDrop(event, treeId, treeNodes, targetNode, moveType) {
    var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
    var node = treeObj.getNodeByTId(treeNodes[0].tId);
    //获取父节点 保存父节点真实id
    var parentNode = node.getParentNode();
    objPId = parentNode.TrueId;
    //获取拖拽后节点前一个节点(没有的话preNodeSeq赋值0)
    var preNode = node.getPreNode();
    var preNodeSeq = 0.00;
    var nextNodeSeq = 0.00;
    if (preNode !== undefined && preNode !== null && preNode !== "") {
        preNodeSeq = preNode.Seq;
    }
    //获取拖拽后节点后一个节点(没有的话nextNodeSeq赋值前一个节点+1)
    nextNodeSeq = preNodeSeq + 1;
    var nextNode = node.getNextNode();
    if (nextNode !== undefined && nextNode !== null && nextNode !== "") {
        nextNodeSeq = nextNode.Seq;
    }
    //根据前一节点和后一节点的seq维护当前节点的新seq
    node.Seq = (preNodeSeq + nextNodeSeq) / 2;
    treeObj.updateNode(node);
    $.ajax({
        type: "post",
        dataType: "json",
        data: {
            'Type': node.TrueType,
            'ObjectId': node.TrueId,
            'Seq': node.Seq,
        },
        url: "/IndustryCategory/UpdateIndustryCategorySeq",
        success: function (data) {
        }
    });
};
拖拽排序后拖动的节点的seq(排序字段)值为目标位置上一节点和下一节点的seq取算数平均值(这样就不影响其他节点的seq,只需要更新一条数据即可完成排序)在通过回调函数触发ajax更新数据库的对应字段
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值