本文实例讲解了jQuery使用zTree插件实现树形菜单和异步加载,并且可以进行编辑,分享给大家供大家参考,具体内容如下
效果图:
一、HTML代码
<html> <head runat=\"server\"> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> <title></title> <link href=\"zTree/css/demo.css\" rel=\"stylesheet\" /> <link href=\"zTree/css/zTreeStyle/zTreeStyle.css\" rel=\"stylesheet\" /> <script src=\"zTree/js/jquery-1.4.4.min.js\"></script> <script src=\"zTree/js/jquery.ztree.core-3.5.js\"></script> <script src=\"zTree/js/jquery.ztree.excheck-3.5.js\"></script> <script src=\"zTree/js/jquery.ztree.exedit-3.5.js\"></script> <script type=\"text/javascript\"> var setting = { async: { enable: true, url: \"AjaxPage/GetAjax.aspx?z=sdfww234edfsd\", autoParam: [\"id\"], dataFilter: filter, contentType: \"application/json\", type:\"get\" }, view: { expandSpeed: \"\", addHoverDom: addHoverDom, removeHoverDom: removeHoverDom, selectedMulti: false }, check: { enable: true }, edit: { enable: true }, data: { simpleData: { enable: true } }, callback: { beforeRemove: beforeRemove, beforeRename: beforeRename, } }; function filter(treeId, parentNode, childNodes) { if (!childNodes) return null; for (var i = 0, l = childNodes.length; i < l; i++) { childNodes[i].name = childNodes[i].name.replace(/\\.n/g, \'.\'); } return childNodes; } function beforeRemove(treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj(\"treeDemo\"); zTree.selectNode(treeNode); return confirm(\"确认删除 节点 -- \" + treeNode.name + \" 吗?\"); } function beforeRename(treeId, treeNode, newName) { if (newName.length == 0) { alert(\"节点名称不能为空.\"); return false; } return true; } var newCount = 1; function addHoverDom(treeId, treeNode) { var sObj = $(\"#\" + treeNode.tId + \"_span\"); if (treeNode.editNameFlag || $(\"#addBtn_\" + treeNode.tId).length > 0) return; var addStr = \"<span class=\'button add\' id=\'addBtn_\" + treeNode.tId + \"\' title=\'add node\' onfocus=\'this.blur();\'></span>\"; sObj.after(addStr); console.log(\"add \" + \"#addBtn_\" + treeNode.id); var btn = $(\"#addBtn_\" + treeNode.tId); if (btn) btn.bind(\"click\", function () { var zTree = $.fn.zTree.getZTreeObj(\"treeDemo\"); zTree.addNodes(treeNode, { id: (100 + newCount), pId: treeNode.id, name: \"new node\" + (newCount++) }); return false; }); }; function removeHoverDom(treeId, treeNode) { console.log(\"remove \" + \"#addBtn_\" + treeNode.id); $(\"#addBtn_\" + treeNode.tId).unbind().remove(); }; $(document).ready(function () { $.fn.zTree.init($(\"#treeDemo\"), setting); }); </script> </head> <body> <ul id=\"treeDemo\" class=\"ztree\" style=\"width: 560px; overflow: auto;\"></ul> </body> </html>
二、异步请求的后台数据:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace CssStudyWeb.AjaxPage { public partial class GetAjax : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString[\"z\"] == \"sdfww234edfsd\")//根据会员卡号,查询会员卡信息 { StringBuilder sb = new StringBuilder(); sb.Append(\"[\"); sb.Append(\"{\\\"id\\\":\\\"1\\\",\\\"name\\\":\\\"销售单管理\\\",\\\"pId\\\":\\\"0\\\"},\"); sb.Append(\"{\\\"id\\\":\\\"101\\\",\\\"name\\\":\\\"销售单列表\\\",\\\"pId\\\":\\\"1\\\"},\"); sb.Append(\"{\\\"id\\\":\\\"102\\\",\\\"name\\\":\\\"销售单综合查询\\\",\\\"pId\\\":\\\"1\\\"},\"); sb.Append(\"{\\\"id\\\":\\\"2\\\",\\\"name\\\":\\\"系统管理\\\",\\\"pId\\\":\\\"0\\\"},\"); sb.Append(\"{\\\"id\\\":\\\"103\\\",\\\"name\\\":\\\"权限组管理\\\",\\\"pId\\\":\\\"2\\\"},\"); sb.Append(\"{\\\"id\\\":\\\"104\\\",\\\"name\\\":\\\"权限菜单管理\\\",\\\"pId\\\":\\\"2\\\"}\"); sb.Append(\"]\"); Response.Write(sb.ToString()); } } } }
以上就是zTree插件实现树形菜单和异步加载的全部代码,希望对大家的学习有所帮助。
本文地址:https://www.stayed.cn/item/21777
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我