国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

jquery zTree異步加載、模糊搜索簡單實例分享

2024-05-06 16:30:00
字體:
來源:轉載
供稿:網友
這篇文章主要為大家詳細介紹了jquery zTree異步加載、模糊搜索簡單實例,感興趣的小伙伴們可以參考一下
 

本文實例為大家講解了jquery zTree樹插件的基本使用方法,具體內容如下

一、節點模糊搜索功能:搜索成功后,自動高亮顯示并定位、展開搜索到的節點。

二、節點異步加載:1、點擊展開時加載數據;2、選中節點時加載數據。
前臺代碼如下:

<script type="text/javascript"> //ztree設置 var setting = { view: { fontCss: getFontCss }, check: { enable: true }, data: { simpleData: { enable: true, idKey: "id", pIdKey: "pId", rootPId: 0 } }, async: { enable: true, url: "#{getStudentsJsonUrl}", autoParam: ["id", "level"] }, callback: { beforeCheck: zTreeBeforeCheck, onNodeCreated: zTreeOnNodeCreated, beforeExpand: zTreeBeforeExpand } }; var reloadFlag = false; //是否重新異步請求 var checkFlag = true; //是否選中 //節點展開前 function zTreeBeforeExpand(treeId, treeNode) { reloadFlag = false; return true; }; //節點創建后 function zTreeOnNodeCreated(event, treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj(treeId); if (reloadFlag) { if (checkFlag) { zTree.checkNode(treeNode, true, true); } if (!treeNode.children) { zTree.reAsyncChildNodes(treeNode, "refresh"); } } }; //選中節點前 function zTreeBeforeCheck(treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj(treeId); if (!treeNode.children) { reloadFlag = true; checkFlag = true; zTree.reAsyncChildNodes(treeNode, "refresh"); } return true; } //頁面加載完成 _run(function () { require(['zTree/js/jquery.ztree.all-3.5'], function () { $.ajax({ type: "POST", url: "#{getStudentsJsonUrl}", success: function (data) {  if (data && data.length != 0) { //如果結果不為空  $.fn.zTree.init($("#tree"), setting, data);  }  else { //搜索不到結果  } } }); }); //提交 $("#inputSubmit").click(function () { var zTree = $.fn.zTree.getZTreeObj("tree"); var nodes = zTree.getCheckedNodes(true); var ids = ""; var names = ""; for (var i = 0; i < nodes.length; i++) { //遍歷選擇的節點集合 if (!nodes[i].isParent) {  ids += nodes[i].id.replace("level" + nodes[i].level, "") + ",";  names += nodes[i].name + ","; } } Simpo.ui.box.hideBox(); parent.$(".boxFrm").contents().find("#inputRange").val(names.substr(0, names.length - 1)); parent.$(".boxFrm").contents().find("#hidRange").val(ids.substr(0, ids.length - 1)); }) }); //查找節點 var lastNodeList = []; var lastKey; function searchNode() { var zTree = $.fn.zTree.getZTreeObj("tree"); var key = $.trim($("#inputSearchNode").val()); if (key != "" && key != lastKey) { nodeList = zTree.getNodesByParamFuzzy("name", key); for (var i = 0, l = lastNodeList.length; i < l; i++) { //上次查詢的節點集合取消高亮 lastNodeList[i].highlight = false; zTree.updateNode(lastNodeList[i]); } zTree.expandAll(false); //全部收縮 if (nodeList.length > 0) { for (var i = 0, l = nodeList.length; i < l; i++) { //遍歷找到的節點集合  if (nodeList[i].getParentNode()) {  zTree.expandNode(nodeList[i].getParentNode(), true, false, false); //展開其父節點  }  nodeList[i].highlight = true;  zTree.updateNode(nodeList[i]); } } zTree.refresh(); // 很重要,否則節點狀態更新混亂。 lastNodeList = nodeList; lastKey = key; } } //加載數據 function loadData() { var zTree = $.fn.zTree.getZTreeObj("tree"); var rootNodes = zTree.getNodes(); reloadFlag = true; checkFlag = false; for (var i = 0; i < rootNodes.length; i++) { if (!rootNodes[i].children) { zTree.reAsyncChildNodes(rootNodes[i], "refresh"); //異步加載 } } } //全部收縮 function closeAll() { var zTree = $.fn.zTree.getZTreeObj("tree"); if ($("#inputCloseAll").val() == "全部收縮") { zTree.expandAll(false); $("#inputCloseAll").val("全部展開") } else { zTree.expandAll(true); $("#inputCloseAll").val("全部收縮") } } //高亮樣式 function getFontCss(treeId, treeNode) { return (treeNode.highlight) ? { color: "#A60000", "font-weight": "bold"} : { color: "#333", "font-weight": "normal" }; }</script>
<div style="width: 200px; height: 260px; overflow: auto; border: solid 1px #666;"> <ul id="tree" class="ztree"> </ul> </div>

后臺代碼(后臺返回Json數據):

 public void SelStudent() { set("getStudentsJsonUrl", to(GetStudentsJson)); } public void GetStudentsJson() { List<Dictionary<string, string>> dicList = new List<Dictionary<string, string>>(); string level = ctx.Post("level"); string id = ctx.Post("id"); if (strUtil.IsNullOrEmpty(id)) { #region 加載班級 //獲取當前登錄用戶 Sys_User user = AdminSecurityUtils.GetLoginUser(ctx); //獲取當前用戶關聯的老師 Edu_Teacher teacher = edu_TeacService.FindByUserId(user.Id); //獲取班級集合 List<Edu_ClaNameFlow> list = edu_ClaNameFlowService.GetListByTeacherId(teacher.Id); foreach (Edu_ClaNameFlow item in list) {  Dictionary<string, string> dic = new Dictionary<string, string>();  dic.Add("id", "level0" + item.Calss.Id.ToString());  dic.Add("pId", "0");  dic.Add("name", item.Gra.Name + item.Calss.Name);  dic.Add("isParent", "true");  dicList.Add(dic); } #endregion } else { if (level == "0") {  //加載學生  List<Edu_Student> list = edu_StudService.GetListByClassId(id.Replace("level0", ""));  foreach (Edu_Student item in list)  {  Dictionary<string, string> dic = new Dictionary<string, string>();  dic.Add("id", "level1" + item.Id.ToString());  dic.Add("pId", id);  dic.Add("name", item.Name);  dic.Add("isParent", "false");  dicList.Add(dic);  } } } echoJson(dicList); }

三、基于cookie實現zTree樹刷新后,展開狀態不變

1、除了引用jQuery和zTree的JS外,引用cookie的JS:

復制代碼代碼如下:
<script type="text/javascript" src="~/Scripts/jquery-treeview/lib/jquery.cookie.js"></script>

 

2、JS代碼:

$(function () { //ztree設置 var setting = {  data: {   simpleData: {    enable: true,    idKey: "id",    pIdKey: "pId",    rootPId: null   }  },  callback: {   onExpand: onExpand,   onCollapse: onCollapse  } }; $.ajax({  type: "POST",  url: "/Tech/TemplateTypeManage/GetData",  success: function (data) {   if (data && data.length != 0) {    $.fn.zTree.init($("#tree"), setting, data);    var treeObj = $.fn.zTree.getZTreeObj("tree");    var cookie = $.cookie("z_tree" + window.location);    if (cookie) {     z_tree = JSON2.parse(cookie);     for (var i = 0; i < z_tree.length; i++) {      var node = treeObj.getNodeByParam('id', z_tree[i])      treeObj.expandNode(node, true, false)     }    }   }  } });});//end $function onExpand(event, treeId, treeNode) { var cookie = $.cookie("z_tree" + window.location); var z_tree = new Array(); if (cookie) {  z_tree = JSON2.parse(cookie); } if ($.inArray(treeNode.id, z_tree) < 0) {  z_tree.push(treeNode.id); } $.cookie("z_tree" + window.location, JSON2.stringify(z_tree))}function onCollapse(event, treeId, treeNode) { var cookie = $.cookie("z_tree" + window.location); var z_tree = new Array(); if (cookie) {  z_tree = JSON2.parse(cookie); } var index = $.inArray(treeNode.id, z_tree); z_tree.splice(index, 1); for (var i = 0; i < treeNode.children.length; i++) {  index = $.inArray(treeNode.children[i].id, z_tree);  if (index > -1) z_tree.splice(index, 1); } $.cookie("z_tree" + window.location, JSON2.stringify(z_tree))}

以上就是關于樹插件zTree異步加載、模糊搜索簡單實例講解,希望對大家的學習有所幫助。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 喀喇| 黄陵县| 永嘉县| 长治县| 临朐县| 高雄市| 望奎县| 永川市| 贡山| 湘阴县| 西丰县| 义马市| 新郑市| 台北县| 吉首市| 兰州市| 钟山县| 青海省| 邯郸县| 廉江市| 渭源县| 广安市| 响水县| 凯里市| 宽城| 修武县| 师宗县| 侯马市| 江西省| 杭锦旗| 藁城市| 巴林右旗| 商河县| 乐安县| 莒南县| 高雄县| 宜阳县| 会理县| 玛多县| 高清| 临西县|