Ztree树形菜单实现动态初始化、添加、删除、修改节点


首先使用ZTree可以到网站上下载相关的例子和js:http://www.treejs.cn/v3/main.php#_zTreeInfo

参考例子:

可以看看基础的例子,网站上有开发接口不懂的可以查看



实现效果:

首先添加了一个根节点,根节点不可删除、编辑,树形菜单至少要有一个节点


是否可以编辑和删除的代码控制

 function showRemoveBtn(treeId, treeNode) {
            if (treeNode.level == 0) return false;//根节点不可删除
            else return true;//!treeNode.isFirstNode;  
        }
        function showRenameBtn(treeId, treeNode) {
            if (treeNode.level == 0) return false;//根节点不可编辑
            else return true;//!!treeNode.isLastNode;
        }

线面添加的节点都是可以编辑和删除的,也可以添加下一级菜单



编辑页面效果:编辑页面弹出新的页面,此页面对节点进行修改(完全都是后台代码,就不多说了),添加更多的信息,关闭弹出页面会为节点重新命名为新名称。



树形菜单代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="FlowTypeList.aspx.cs" Inherits="FlowOA_FlowSet_FlowTypeList" %>


    
    
    
     
     
    
     href="../../layui/css/global.css" rel="stylesheet" />
     href="../../layui/ztreecss/demo.css" rel="stylesheet" type="text/css" />
    <script src="../../layui/plugins/layui/layui.js"></script>

     href="../../layui/ztreecss/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
    <script type="text/javascript" src="../../layui/ztreejs/jquery-1.4.4.min.js"></script>
    <script type="text/javascri
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
zTree可以通过异步加载数据来实现动态菜单。具体步骤如下: 1. 初始化zTree时,设置异步加载参数,包括异步请求的URL、请求方法、请求参数等。 2. 当需要加载动态数据时,调用zTree的异步加载方法,传入请求参数。 3. 服务器接收到请求参数后,根据参数查询数据库或其他数据源,生成对应的数据,并返回给前端。 4. 前端接收到响应数据后,将数据转换成zTree所需的JSON格式,并调用zTree的更新节点数据方法,将数据更新到zTree中即可。 示例代码如下: ``` // 初始化zTree var setting = { async: { enable: true, // 开启异步加载 url: "dynamicMenu.php", // 异步请求的URL type: "POST", // 请求方法 autoParam: ["id"], // 请求参数 dataType: "json" // 响应数据类型 } }; var zTreeObj = $.fn.zTree.init($("#tree"), setting); // 加载动态数据 zTreeObj.reAsyncChildNodes(null, "refresh"); ``` 服务器端代码示例(PHP): ``` // 获取请求参数 $id = isset($_POST['id']) ? intval($_POST['id']) : 0; // 查询数据库获取节点数据 $nodes = array(); if ($id == 0) { // 查询根节点 $nodes[] = array( 'id' => 1, 'name' => '根节点', 'isParent' => true ); } else { // 查询子节点 $result = mysql_query("SELECT * FROM menu WHERE parent_id=$id"); while ($row = mysql_fetch_array($result)) { $nodes[] = array( 'id' => $row['id'], 'name' => $row['name'], 'isParent' => $row['has_child'] == 1 ); } } // 返回响应数据 echo json_encode($nodes); ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值