C#之生成树形菜单数据
public class MenuModel{/// <summary>/// ID/// </summary>public int ID { get; set; }/// <summary>/// 菜单名/// </summary>public string MenuName { get; set; }/// <summary>/// 父菜单/// </summary>public int ParentID { get; set; }}public class TreeModel{/// <summary>/// ID/// </summary>public string id { get; set; }/// <summary>/// 节点名称/// </summary>public string text { get; set; }/// <summary>/// 是否展开/// </summary>public string state { get; set; }/// <summary>/// 图标样式/// </summary>public string iconCls { get; set; }/// <summary>/// 子节点集合/// </summary>public List<TreeModel> children { get; set; }}public List<TreeModel> GetTreeList(int ParentID){List<TreeModel> TreeList = new List<TreeModel>();List<MenuModel> ModelList = GetChildMenuList(ParentID);foreach (var item in ModelList){TreeModel m = new TreeModel();m.id = item.ID.ToString();m.text = item.MenuName.ToString();m.children = GetTreeList(item.ID);TreeList.Add(m);}return TreeList;}/// <summary>/// 获取所有菜单数据/// </summary>/// <returns></returns>public List<MenuModel> GetAllMenuList(){List<MenuModel> list = new List<MenuModel>();list.Add(new MenuModel { ID = 1, MenuName = "菜单1", ParentID = 0 });list.Add(new MenuModel { ID = 2, MenuName = "菜单1.1", ParentID = 1 });list.Add(new MenuModel { ID = 3, MenuName = "菜单1.1.1", ParentID = 2 });list.Add(new MenuModel { ID = 4, MenuName = "菜单2", ParentID = 0 });return list;}/// <summary>/// 根据父节点获取子节点/// </summary>/// <param name="ParentID"></param>/// <returns></returns>public List<MenuModel> GetChildMenuList(int ParentID){List<MenuModel> list = GetAllMenuList();var result =list.Where(x => x.ParentID == ParentID);return result.ToList();}
调用:
List<TreeModel> list = GetTreeList(0); string json = new JavaScriptSerializer().Serialize(list);
结果为
[{"id": "1","text": "菜单1","state": null,"iconCls": null,"children": [{"id": "2","text": "菜单1.1","state": null,"iconCls": null,"children": [{"id": "3","text": "菜单1.1.1","state": null,"iconCls": null,"children": []}]}]},{"id": "4","text": "菜单2","state": null,"iconCls": null,"children": []}]
转载于:https://www.cnblogs.com/zengnansheng/p/10389376.html
C#之生成树形菜单数据相关推荐
- MVC +easyui +json 前后端交互动态生成树形菜单
效果图: 1.view端代码实现,引入jquery.easyui 的js文件,创建树形菜单标签<ul>,如下所示: @{ViewBag.Title = "Home Page&qu ...
- php 递归生成树形菜单,递归生成树形结构菜单
public List listWithTree() { //1.查出所有菜单 List categoryEntities = categoryDao.selectList(null); //2.组装 ...
- 使用ztree异步加载数据库数据形成树形菜单
-搞了好久好久,在此记录一下这个这个胜利的时刻!!!!作为一个合格的程序员,任重而道远啊- 项目环境:thinkphp5+mysql+ztree 项目目标:从MySQL数据库获取小区用户位置信息.用户 ...
- Unity 引擎UGUI之自定义树形菜单(TreeView)
先上几张效果图: 如果你需要的也是这种效果,那你就来对地方了! 目前,我们这个树形菜单展现出来的功能如下: 1.可以动态配置数据源: 2.点击每个元素的上下文菜单按钮(也就是图中的三 ...
- zTree树形菜单交互选项卡效果实现
1. 添加自定义属性 page 2. 为 ztree 每个树形节点,添加点击事件 <!DOCTYPE html> <html><head><meta char ...
- zTree树形菜单使用实例
在每个节点添加 id 和 pid, id 表示当前节点编号,pid 表示父节点编号 第一步:在页面显示菜单位置,添加 ul设置 class="ztree" 第二步:开启简单数据格式 ...
- php会计科目,ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
假设数据库中会计科目数据表的字段为:id,code,name,islast.分别为自增主键,科目编码,科目名称,是否为末级("1"表示末级科目). 这里在Thinkphp的模型层中 ...
- html5 jstree树形菜单,树形插件jsTree
jsTree是一款基于jQuery的树形控件,具有扩展性强,可编辑和可配置的特性,支持HTML,JSON和Ajax数据加载.jsTree官网地址:https://www.jstree.com/.这里主 ...
- vue 递归组件多级_Vue 递归组件构建一个树形菜单
原标题:Vue 递归组件构建一个树形菜单 Vue.js 中的递归组件是一个可以调用自己的组件例如: Vue.component('recursive-component', { template: ` ...
- ajax使用json下拉框,ajax请求后台得到json数据后动态生成树形下拉框的方法
如下所示: $(function(){ $.ajax({ url:"departmentAction_getAllDep.action", type:"post" ...
最新文章
- 服务差,信号不好真的是联通用户下滑的原因吗?
- 按摩加快肌肉修复有科学依据了,哈佛大学研究成果登Science子刊
- MindManager: Draw your own MindMap!
- 利用Python爬取糗事百科段子信息
- RESTful 架构风格概述
- php显示发件人地址吗,php – 发件人地址被拒绝
- SpringBoot YML配置文件
- 实战:采⽤Sharding-JDBC实现订单表的(两主四从) 分库分表 和 读写分离
- 平时如何管理你的项目?
- 计算机网络课程思政教学目标,计算机学院举行课程思政示范教学活动
- WEBI上取月的整周
- 基于AT89C51及Proteus仿真的室内火灾监测装置
- (附源码)node.js学生钟点工管理系统 毕业设计 290011
- java 读取excel表格_Java读取excel表格(原理+实现)
- vue项目中引入Luckysheet
- python识别颜色并提取轮廓_pythonopencv检测并提取目标颜色
- linux db2 端口配置,DB2数据库-实例级配置-TCP/IP以及端口配置
- 编译安卓系统源码jack-server问题入坑,全网最全解决方法
- 看医疗行业如何建立信息化战略决策
- Effie:真正的极简主义!秒杀幕布
热门文章
- IOS开发之Post 方式获取服务器数据
- char* char [] 区别[zz]
- delphi 标题栏相关操作
- asp.net程序中最常用的三十三种编程代码(转自CSDN)
- 第五章 基于时序差分和Q学习的无模型预测与控制-强化学习理论学习与代码实现(强化学习导论第二版)
- 【LeetCode】【字符串】题号:*551. 学生出勤记录 I
- 旋转数组的最小数字(牛客网C++代码)
- ERDAS 安装完成之后如何打开软件新建工程
- 题目:将一个正整数分解质因数
- kubernetes集群pod异常状态ContainerCreating的解决