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

来源:互联网 发布:apache windows 32位 编辑:程序博客网 时间:2024/05/27 00:33


首先使用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" %>                                                    .ztree li span.button.add {            margin-left: 2px;            margin-right: -1px;            background-position: -144px 0;            vertical-align: top;            *vertical-align: middle;        }        

    FlowTypeHandler.ashx  代码:实现获得,添加、删除的功能,添加后修改页面为弹出页面可以添加更多信息

    <%@ WebHandler Language="C#" Class="FlowTypeHandler" %>using System;using System.Web;using XMM.Model.FlowOA;using XMM.BLL.FlowOA;using System.Collections.Generic;public class FlowTypeHandler : IHttpHandler{    public void ProcessRequest(HttpContext context)    {        context.Response.ContentType = "text/plain";        string Type = HttpContext.Current.Request["Type"].ToLower();        string ParentID = HttpContext.Current.Request["pId"];        if (Type == "add")        {            Flow_Type model = new Flow_Type();            string Name = "新类型请编辑";            int OrderID = 0;            string Memo = "新类型请编辑";            model.Name = Name;            model.PID = int.Parse(ParentID);            Flow_Type ParentModel = Flow_TypeService.GetFlow_TypeByID(Convert.ToInt64(ParentID));            if (ParentModel != null)            {                model.Depth = ParentModel.ParentPath.Split(',').Length;                model.ParentPath = ParentModel.ParentPath + "," + ParentID;            }            else            {                model.Depth = 0;                model.ParentPath = "0";            }            model.orderID = OrderID;            model.Memo = Memo;            model.UpdateTime = DateTime.Now;            model.UserName = UserInfo.GetUserName();            int ReturnID = Flow_TypeService.AddFlow_Type(model);            if (ReturnID > 0)                context.Response.Write(ReturnID.ToString());            else                context.Response.Write("0");        }        else if (Type == "update")        {        }        else if (Type == "del")        {            string ID = HttpContext.Current.Request["Id"];            bool ReturnID = Flow_TypeService.DeleteFlow_TypeByID(long.Parse(ID));            if (ReturnID)                context.Response.Write("1");            else                context.Response.Write("0");        }        else if (Type == "getinfo")        {            List Flow_TypeList = Flow_TypeService.GetAllFlow_Type();            var arr = new List() { };            var d = new Dictionary();            d["id"] = 0;            d["pId"] = -1;            d["name"] = "流程类型设置";            d["open"] = true;            d["Icon"] = "";            arr.Add(d);            foreach (Flow_Type item in Flow_TypeList)            {                d = new Dictionary();                d["id"] = item.ID;                d["pId"] = item.PID;                d["name"] = item.Name;                if (item.PID == 0) d["open"] = true;                else d["open"] = false;                d["Icon"] = item.Icon;                arr.Add(d);            }            context.Response.Write(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(arr));        }        else        {        }    }    public bool IsReusable    {        get        {            return false;        }    }}








    0 0
    原创粉丝点击