C#使用Jquery zTree实现树状结构显示 异步数据加载

发布时间 - 2026-01-10 21:56:08    点击率:

C#使用Jquery zTree实现树状结构显示_异步数据加载

JQuery-Ztree下载地址:https://github.com/zTree/zTree_v3

JQuery-Ztree数结构演示页面:  http://www.treejs.cn/v3/demo.php#_101

关于zTree的详细解释请看演示页面,还有zTree帮助Demo。 

下面简要讲解下本人用到的其中一个实例(直接上关键代码了):

异步加载节点数据: 

A-前台:

<link href="zTree_v3-master/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
 <script src="zTree_v3-master/js/jquery.ztree.core.js" type="text/javascript"></script>
 <script language="JavaScript" type="text/javascript">
 var setting = {
  async: {
   enable: true,
   url: "../Handler/ShoppingHandler.ashx", //请求的一般处理程序
   autoParam: ["id"],       //自带参数id--来自于节点id
   otherParam: { "type": "GetUserLevelList" }, //其他参数自定义
   dataFilter: filter, //数据过滤
   type: "post" //请求方式
  }
 };

 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;
 }

 $(document).ready(function () {
  $.fn.zTree.init($("#treeDemo"), setting); //渲染树结构
 });
 </script>
<div class="zTreeDemoBackground left">
  <ul id="treeDemo" class="ztree"></ul>
</div>

B后台:

using MobileBusiness.Common.Data;
using MobileBusiness.Library.Passport;
using MobileBusiness.Shopping.Data;
using MobileBusiness.Shopping.Data.Common;
using MobileBusiness.Shopping.Data.Entity;
using MobileBusiness.Web.Library.Script;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ShoppingData = MobileBusiness.Shopping.Data.Entity;

namespace MobileBusiness.Shopping.BusinessManage.Handler
{
 /// <summary>
 /// Shopping 的摘要说明
 /// </summary>
 public class ShoppingHandler : IHttpHandler
 {
  //当前登录用户信息
  WeChatUser weChatUser = WeChatIdentity.CurrentUser;

  public void ProcessRequest(HttpContext context)
  {
   string result = "";
   if (context.Request["type"] != null)
   {
    string requestType = context.Request["type"];

    try
    {
     switch (requestType)
     {
      //获取用户信息等级列表
      case "GetUserLevelList":
       result = this.GetUserLevelList(context); break;
      default:
       break;
     }
    }
    catch (Exception ex)
    {
     result = ex.Message;
    }
   }

   context.Response.ContentType = "text/html";
   context.Response.Write(result);
   context.Response.End();
  }

  private string GetUserLevelList(HttpContext context)
  {
   string parentUserPhone = context.Request["id"];
   return GetUserCollByPhone(parentUserPhone);
  }
  private string GetUserCollByPhone(string phone)
  {
   //编码,父编码,名称,是否打开,打开图片,关闭图片
   //{ id:1, pId:0, name:"展开、折叠 自定义图标不同", open:true, iconOpen:"../../../css/zTreeStyle/img/diy/1_open.png", iconClose:"../../../css/zTreeStyle/img/diy/1_close.png"},
   //编码,父编码,名称,是否打开,显示图片
   //{ id: 11, pId: 1, name: "叶子节点1", icon: "../../../css/zTreeStyle/img/diy/2.png"},
   List<object> result = new List<object>();

   ShoppingData.UserInfoCollection userColl = ShoppingData.UserInfoAdapter.Instance.LoadByParentUserPhone(phone);
   userColl.ForEach(user =>
   {
    result.Add(new
    {
     id = user.Phone,
     pid = phone,
     name = user.UserName,
     isParent = ShoppingData.UserInfoAdapter.Instance.LoadByParentUserPhone(user.Phone).Count > 0 ? true : false
    });
   });
   return JsonConvert.SerializeObject(result);
  }
  public bool IsReusable
  {
   get
   {
    return false;
   }
  }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Jquery  # zTree树状结构  # C#异步加载  # zTree树状结构显示  # C# WPF如何反射加载Geometry几何图形数据图标  # c# WPF中自定义加载时实现带动画效果的Form和FormItem  # c# 实现网页加载后将页面截取为长图片  # C# 根据表格偶数、奇数加载不同颜色  # C# 动态加载程序集信息  # C#中调用DLL时未能加载文件或程序集错误的处理方法(详解)  # C#中加载dll并调用其函数的实现方法  # c# 动态加载dll文件  # 并实现调用其中的简单方法  # C#使用反射加载多个程序集的实现方法  # C#实现动态加载dll的方法  # c#动态加载卸载DLL的方法  # 3种C# 加载Word的方法  # 自定义  # 加载  # 下载地址  # 树状  # 来自于  # 其中一个  # 自带  # 大家多多  # 解下  # ashx  # Handler  # ShoppingHandler  # autoParam  # zTreeDemoBackground  # otherParam  # id  # left  # url  # language  # JavaScript 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 实例解析angularjs的filter过滤器  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  如何用西部建站助手快速创建专业网站?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  微信h5制作网站有哪些,免费微信H5页面制作工具?  如何快速搭建个人网站并优化SEO?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  Laravel如何配置和使用缓存?(Redis代码示例)  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  无锡营销型网站制作公司,无锡网选车牌流程?  南京网站制作费用,南京远驱官方网站?  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  如何在不使用负向后查找的情况下匹配特定条件前的换行符  php json中文编码为null的解决办法  香港服务器WordPress建站指南:SEO优化与高效部署策略  Laravel如何实现用户密码重置功能?(完整流程代码)  Laravel如何使用Sanctum进行API认证?(SPA实战)  Laravel如何创建自定义Facades?(详细步骤)  浅谈javascript alert和confirm的美化  MySQL查询结果复制到新表的方法(更新、插入)  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  C#如何调用原生C++ COM对象详解  千库网官网入口推荐 千库网设计创意平台入口  大型企业网站制作流程,做网站需要注册公司吗?  如何确认建站备案号应放置的具体位置?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  如何在IIS中新建站点并配置端口与IP地址?  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  如何快速使用云服务器搭建个人网站?  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  北京专业网站制作设计师招聘,北京白云观官方网站?  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  高防服务器如何保障网站安全无虞?  如何选择可靠的免备案建站服务器?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  如何在 React 中条件性地遍历数组并渲染元素  独立制作一个网站多少钱,建立网站需要花多少钱?  手机软键盘弹出时影响布局的解决方法  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  Laravel如何使用Vite进行前端资源打包?(配置示例)