首页 > 其他分享 >LayUI树形结构

LayUI树形结构

时间:2023-12-05 12:22:05浏览次数:29  
标签:TreeListToReturn string title LayUI id 树形 new public 结构

最近在学习LayUI学到tree组件 ,所以做一下随笔记录

下面是我用来接收数据的类

namespace HisProject.Models
{
public class TreeListToReturn
{
public string id { get; set; }
public string title { get; set; }
public List<TreeListToReturn> children { get; set; } = new List<TreeListToReturn>();

public TreeListToReturn SetId(string id)
{
this.id = id;
return this;
}
public TreeListToReturn SetTitle(string title)
{
this.title = title;
return this;
}

public TreeListToReturn Addchildren(TreeListToReturn children)
{
this.children.Add(children);
return this;
}

}
}

 

//下面是返回的tree需要的数据  : 有想过用递归做,但是递归我不太熟悉,后面有时间我也想试下用递归做。这里我用的是链式调用。

public IActionResult GetInventoryTree()
{//初始化一个arrayList存放最后的数据
ArrayList array = new ArrayList();
//最上面一层
TreeListToReturn topTreeListToReturn = new TreeListToReturn();
topTreeListToReturn.SetTitle("收费项").SetId("00");
//TreeListToReturn treeListToReturn = new TreeListToReturn();
IEnumerable<Inventory> res = _inventoryService.GetInventoryById(string.Empty);
foreach (Inventory item in res)
{
TreeListToReturn treeListToReturn = new TreeListToReturn();
//第二层 添加 id title
treeListToReturn.SetId(item.InventoryId).SetTitle(item.InventoryName);
topTreeListToReturn.Addchildren(treeListToReturn);
if (!string.IsNullOrEmpty(item.InventoryInnerType))
{//循环第二层 添加 children
IEnumerable<Inventory> innerInventory = _inventoryService.GetInventoryById(item.InventoryInnerType);
foreach (Inventory innerItem in innerInventory)
{
TreeListToReturn treeListToReturn1 = new TreeListToReturn();
treeListToReturn1.SetId(innerItem.InventoryId).SetTitle(innerItem.InventoryName);
treeListToReturn.Addchildren(treeListToReturn1);
if (!string.IsNullOrEmpty(innerItem.InventoryInnerType))
{
IEnumerable<Inventory> innestInventory = _inventoryService.GetInventoryById(innerItem.InventoryId);
foreach (Inventory innestItem in innestInventory)
{
//上一层的List 添加本层的List为children
TreeListToReturn t = new TreeListToReturn().SetId(innestItem.InventoryId).SetTitle(innestItem.InventoryName);
treeListToReturn1.Addchildren(t);
}
}
}
}
}
array.Add(topTreeListToReturn);
return SuccessResult("ok", array);

}

//下面是数据访问层  我用的是EF

public IEnumerable<Inventory> GetInventoryById(string inventoryType)
{
return _dbContent.inventory.Where(p => p.InventoryType == inventoryType).ToList();
}

//下面是html tree组件的render代码    tree.reload暂时还不会。

tree.render({
elem: '#test9'
, data: data1
,id:"treeID"
, edit: ['add', 'update', 'del'] //操作节点的图标
, click: function (obj) {
//layer.msg(JSON.stringify(obj.data));
//console.log(obj.data.id);
inventoryType = obj.data.id;
table.render({
elem: "#demo"
, toolbar: '#toolbarD'
, url: "GetAllInventoryByType?Type=" + obj.data.id
, height: 'full-100'
, page: true
, cols: [[
{ type: 'checkbox', fixed: 'left' },
{ field: 'InventoryId', title: '物料编码', width: 120, sort: true, fixed: 'left' }
, { field: 'InventoryName', title: '物料名称', width: 150 }
, { field: 'InventoryType', title: '大类', width: 80, sort: true }
, { field: 'InventoryInnerType', title: '小类', width: 80 }
, { field: 'Address', title: '地址', width: 177 }
, { field: 'SupplyerName', title: '供应商', width: 120, sort: true }
, { title: '操作', width: 133, templet: '#toolbarDemo' }
]]
})
}
});

 

标签:TreeListToReturn,string,title,LayUI,id,树形,new,public,结构
From: https://www.cnblogs.com/merakia/p/17876946.html

相关文章

  • MySql体系结构
    1、MySql的架构——单进程,多线程 2、Client与Service的连接方式:1)TCP长连接,也是JDBC的本质 2)UnixSocket 注:1)JDBC是JavaDataBaseConnectivity的缩写,它是Java程序访问数据库的标准接口。使用JDBC的好处是:各......
  • 【组成原理-指令】扩展操作码的树形解法
    仿照哈夫曼树(或前缀编码,Prefix-free)的解法,目前先不解释具体怎么画了,直接放例题,大家自己慢慢品味吧。【例1】某指令系统指令长16位,操作码字段为4位,地址码字段为4位,采用扩展操作码技术,形成三地址指令15条、二地址指令15条、一地址指令15条、零地址指令16条。【解......
  • 因果推断9-18 链状结构、叉状结构、对撞结构、D-分割、模型检验和等价类
     https://www.bilibili.com/video/BV1tk4y127L1/?spm_id_from=333.788&vd_source=3ad05e655a5ea14063a9fd1c0dcdee3e所以得到一个结论,如果在一个链结构里面,比如X->Y->Z,condition到中间变量Y时,那么两边的变量X和Z是独立的。如果不condition到中间的变量时,那么两边的变量X,Z是......
  • Day08 逻辑结构(switch和增强for)
    1.知识点if,switch,for,while等等和C++、js等相似,需要注意以下几点:1.1有关switchswitch中的casevalue:value类型可以是byte,short,int,char。value类型:string类型是JDK7才开始支持的1.2有关增强forfor(元素类型变量名:需要遍历的数组或集合){......
  • 循环结构
    循环结构介绍循环语句的应用场景,学会用“循环”思想解决实际问题;介绍java中的三种循环语句,掌握循环语句的结构,学会for语句、while语句及do-while的使用,掌握各循环语句的区别及实际开发中的取舍,理解嵌套循环的应用场景,掌握嵌套循环的使用,掌握break、continue、return语句在循......
  • C++U3-第3课-结构体
    上节课作业:链接:https://pan.baidu.com/s/1fBx8bS-J_FPDqBzn6Omp-g?pwd=1rn5提取码:1rn5学习目标在C++中,结构体(Struct)是一种用于组合多个相关数据项的自定义数据类型。结构体可以包含不同类型的成员变量和成员函数,并且可以通过.运算符来访问和操作它们。结构体在C++中具有以下......
  • 如何理解微服务体系结构中的 CQRS
    本文翻译自HowToUnderstandCQRSInMicroservicesArchitecture,原作者OLEKSII。问题描述在典型的软件应用程序中,有一个负责写入和读取操作的数据存储。通常,应用程序实现一些CRUD操作,并且非常简单。你存储了一些东西并读取了相同的结果。然而,在复杂的应用程序中,情况......
  • “数据结构”模式之迭代器(Iterator)模式
    常常有一些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用。这时候,将这些特定数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无关的访问,是一种行之有效的解决方案。典型模式:CompositeIteratorChainofResposibilit......
  • 基础后缀数据结构简记
    \[\newcommand{\lcp}{\operatorname{lcp}}\newcommand{\endpos}{\operatorname{endpos}}\newcommand{\link}{\operatorname{link}}\newcommand{\maxl}{\operatorname{maxl}}\newcommand{\minl}{\operatorname{minl}}\]约定\(n\)是字符串长度.\(\lcp(s,t)\......
  • 结构体
    定义结构是一种复合的数据类型,可以包含多个不同类型的成员变量。我们可以通过结构类型声明结构,并通过结构变量来访问结构的成员。结构变量可以赋初值,可以进行运算,还可以作为函数参数传递。Howto声明看下面的例子——声明一个有关学生的结构体它就可以声明在变量的内部,也可......