效果展示

头部的折叠,展开,搜索按钮

<div class="layui-fluid">

    <div style="margin-top: 20px;">
<div class="layui-btn-group">
<button class="layui-btn " id="btn-expand"><i class="layui-icon layui-icon-down"></i> 全部展开</button>
<button class="layui-btn " id="btn-fold"><i class="layui-icon layui-icon-left"></i> 全部折叠</button>
<button class="layui-btn " id="btn-refresh"><i class="layui-icon layui-icon-loading"></i> 刷新表格</button>
</div>
<div class="layui-inline">
<input class="layui-input" id="edt-search" value="" placeholder="输入关键字">
</div> <button class="layui-btn" id="btn-search" type="button">搜索</button>
</div>
</div>
<table id="table1" class="layui-table" lay-filter="table1"></table>
<script type="text/html" id="toolbarDemo"> </script>
<script type="text/html" id="auth-state">
<a class="layui-btn layui-btn-small layui-btn-xs" onclick="def_Open('编辑用户','/CoreNetPrejectManager/PrejectItem/Edit?Id={{d.Kid}}')" lay-event="edit">修改</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>

下载module/treetable-lay整个文件夹,放在你的项目里面,然后使用模块加载的方式使用:

<script>
layui.config({
base: '/xadmin/lay/modules/'
}).extend({
treetable: 'treetable-lay/treetable'
}).use(['treetable'], function () {
var treetable = layui.treetable; });
<div class="layui-fluid">

引用的表格

<script>
layui.use(['treetable', 'layer', 'table','jquery', 'form', 'element'], function () {
var layer = layui.layer, $ = layui.jquery, form = layui.form; table = layui.table;
var treetable = layui.treetable;
var layer = layui.layer;
// 渲染表格
treetable.render({
treeColIndex: 0, // treetable新增参数
treeSpid: 1,
treeIdName: 'd_id',
treePidName: 'd_pid',
treeDefaultClose: true,
treeLinkage: true,
elem: '#table1',
url: '/UpFile/tree.json',
toolbar: '#toolbarDemo',
cols: [[
//{ type: 'checkbox' },
{ field: 'name', title: '任务事项' },
{ field: 'PlanStart', title: '计划开始时间' },
{ field: 'PlanEnd', title: '计划结束时间' },
{ field: 'ActualTime', title: '实际完成时间' },
{ field: 'FisStatus', title: '完成状态' },
{ field: 'FisPeriod', title: '完成周期' },
{ field: 'BuggetMoney', title: '月算费用' },
{ field: 'FinalMoney', title: '决算费用' },
{ field: 'RespDepartmentName', title: '责任部门' },
{ field: 'ResUidName', title: '责任人' },
{ templet: '#auth-state', width: 150, align: 'center', title: '操作' }
]]
});
table.on('tool(table1)', function (obj) {
var data = obj.data;
var layEvent = obj.event; if (layEvent === 'del') { alert('你不可以删除' + data.name);
}
});
//全部展开
$(document).on("click","#btn-expand",function(){
treetable.expandAll('#table1');
}); //全部折叠
$(document).on("click","#btn-fold",function(){
treetable.foldAll('#table1');
}); //刷新表格
$(document).on("click","#btn-refresh",function(){
location.reload();
});
//搜索
$(document).on("click","#btn-search",function(){
var keyword = $('#edt-search').val();
var searchCount = 0;
$('#table1').next('.treeTable').find('.layui-table-body tbody tr td').each(function () {
$(this).css('background-color', 'transparent');
var text = $(this).text();
if (keyword != '' && text.indexOf(keyword) >= 0) {
$(this).css('background-color', 'rgba(250,230,160,0.5)');
if (searchCount == 0) {
treetable.expandAll('#table1');
$('html,body').stop(true);
$('html,body').animate({scrollTop: $(this).offset().top - 150}, 500);
}
searchCount++;
}
});
if (keyword == '') {
layer.msg("请输入搜索内容", {icon: 5});
} else if (searchCount == 0) {
layer.msg("没有匹配结果", {icon: 5});
}
});
});
</script>
注意:
可以使用url传递数据,也可以使用data传递数据,如果使用url传递数据,参数是where字段, 跟layui数据表格的使用方式一致。

数据格式

总而言之就是以id、pid的形式,不是以subMenus的形式,当然id、pid这两个字段的名称可以自定义:

    1. {
    2. "code": 0,
    3. "msg": "ok",
    4. "data": [{
    5. "id": 1,
    6. "name": "xx",
    7. "sex": "male",
    8. "pid": -1
    9. },{
    10. "id": 2,
    11. "name": "xx",
    12. "sex": "male",
    13. "pid": 1
    14. }
    15. ]
    16. }

2.3.参数说明

layui数据表格的所有参数都可以用,除此之外treetable新增的参数有:

2.3.参数说明

layui数据表格的所有参数都可以用,除此之外treetable新增的参数有:

参数 类型 是否必填 描述
treeColIndex int 树形图标显示在第几列
treeSpid object 最上级的父级id
treeIdName string id字段的名称
treePidName string pid字段的名称
treeDefaultClose boolean 是否默认折叠
treeLinkage boolean 父级展开时是否自动展开所有子级

根据需求按条件拿到自己需要的DataTable数据

 public IActionResult ManagerProgress(int TempId)
{
int RecordCount = 0;
List<DtItem> Variable = new List<DtItem>()
{
new DtItem("TempId",SqlDbType.Int,4,TempId),
};
var listData = SqlProcedure.getDataTable(Variable, "CoreNetPrejectItem_GetList", out RecordCount);//调用得是存储过程方法
DataTable dtlist = listData;
ProgressList(dtlist);
return View();
}

用DataTable传送数据拼接成需要的数据格式

 public void ProgressList(DataTable dtlist)
{
if (dtlist != null && dtlist.Rows.Count > 0)
{
string json = "{\"code\": 0,\"msg\": \"ok\",\"data\": [";
foreach (DataRow item in dtlist.Rows)
{
json += " {\"id\": "
+ int.Parse(item["StageId"].ToString())
+ ", \"name\": \"" + item["PrejectName"].ToString()
+ "\",\"PlanStart\":\"" + item["StartTime"].ToString()
+ "\",\"PlanEnd\":\"" + item["EndTime"].ToString()
+ "\",\"ActualTime\":\"" + item["ConcreteTime"].ToString()
+ "\",\"FisStatus\": " + int.Parse(item["State"].ToString())
+ ",\"FisPeriod\": " + int.Parse(item["Period"].ToString())
+ ",\"BuggetMoney\": " + decimal.Parse(item["MonthlyPrice"].ToString())
+ ",\"FinalMoney\": " + decimal.Parse(item["BudgetPrice"].ToString())
+ ",\"RespDepartmentName\": \"" + item["DepartName"].ToString()
+ "\",\"ResUidName\": \"" + item["UserName"].ToString()
+ "\",\"Kid\": " + int.Parse(item["Id"].ToString())
+ ",\"pid\": " + int.Parse(item["PId"].ToString())
+ "},";
}
json = json.TrimEnd(',');
json += "]}";
//目录名
string sFilePath = FileHelper.CheckAndCreateFile("UpFile/tree.json", true);
FileHelper.SaveFile(sFilePath, json, "utf-8");
}
}

百度搜索layui折叠表格也可以搜到的,只不过数据接口的json格式需要自己根据实际情况采用拼接还是其他方法。

.net core layui折叠表格的应用。的更多相关文章

  1. layui树形表格支持非异步和异步加载

    layui树形表格支持非异步和异步加载. 仓库地址:https://gitee.com/uniqid/ 使用示例如下: <div class="uui-admin-common-bod ...

  2. 项目总结19:layui实现表格渲染、表格搜索、数据获取

    项目总结19:layui实现表格渲染.表格搜索.数据获取 1-参考资料:https://www.layui.com/demo/table/reload.html 2-本次总结的是layui的表格功能, ...

  3. LayUI——数据表格使用

    Layui数据表格的实际项目使用 Layui的数据表格可谓是在后台管理的页面中经常用到的工具了 最近做项目就用到了,项目的要求是用数据表格显示出后台文章的列表并且每一行的文章都有对应的修改删除操作按钮 ...

  4. 折叠表格思路及遇到的问题(tableView:viewForHeaderInSection:的section从1开始,不是从0开始)

    项目需要做了一个类似qq联系人的折叠表格,思路很简单:设置每个section的header,在header上显示组名等信息,然后根据折叠与否,设置每个section中cell的数量,如果折叠,则将之设 ...

  5. layui-table-column-select(layui数据表格可搜索下拉框select)

    layuiTableColumnSelect 在layui table的基础上对表格列进行扩展:点击单元格显示可搜索下拉列表. 码云地址:https://gitee.com/yangqianlong9 ...

  6. css折叠表格

    1.html <div class="custom-fold-table"> <table cellpadding="0" cellspaci ...

  7. 【Layui】当Layui数据表格和Layui下拉框组合时发生的问题

    关于Layui数据表格用下拉框显示问题 如图所示 可以看见当点击下拉框时下拉选项被下拉框覆盖 此时你需要在数据表格渲染完成时的回调内添加如下代码即可 $(".sel_scrq"). ...

  8. Layui数据表格模型

    视图模型 package com.meiyou.model; import org.springframework.context.annotation.Bean; import java.io.Se ...

  9. Layui数据表格的接口数据请求方式为Get

    Layui数据表格的接口数据请求方式为Get

  10. 基于layui,Jquery 表格动态编辑 设置 编辑值为 int 或者 double 类型及默认值

    首先先推荐大家在看这篇笔记时,阅读过我写的这篇 Layui表格编辑[不依赖Layui的动态table加载] 阅读过上面那篇笔记之后呢,才能更好的理解我现在所要说的这个东西 接下来废话不多说,上代码. ...

随机推荐

  1. Grafana 系列文章(十):为什么应该使用 Loki

    ️URL: https://grafana.com/blog/2020/09/09/all-the-non-technical-advantages-of-loki-reduce-costs-stre ...

  2. Task记录2.ContinueWith 延续任务,等待上一个任务执行完毕

    Task.Run(() => {for (int i = 0; i < 20; i++) { Console.WriteLine(i); } } }).ContinueWith(NewTa ...

  3. Linux上安装jdk Tomcat mysql redis等

    1.安装JDk  1.1这里使用xshell中xfxp进行文件的上传,将jdk二进制包上传到Linux服务器上 下载地址:https://www.oracle.com/java/technologie ...

  4. ACID和CAP的比较

    https://www.jdon.com/artichect/acid-cap.html 1 简介 事务机制ACID和CAP理论是数据管理和分布式系统中两个重要的概念,很不巧,这两个概念中都有相同的& ...

  5. [Ynoi2016] 掉进兔子洞

    \(\text{Solution}\) 莫队配合 \(\text{bitset}\) 发现答案困难的部分在于同一个数在三个区间出现次数的最小值 考虑强行拆开看,用莫队处理出每个区间每个数的出现次数,这 ...

  6. docker-compose部署rocketmq

    docker-compose安装: 1.从github上下载docker-compose二进制文件安装 Ubuntu下载docker-compose文件 sudo curl -L https://gi ...

  7. C与Java中的动态数组

    1. 引言 在实际的编程中,往往会发生这种情况,即所需的内存空间取决于实际输入的数据,而无法预先确定.对于这种问题,用静态数组的办法很难解决. 动态数组,是相对于静态数组而言.静态数组的长度是预先定义 ...

  8. 从安装开发环境到第一个“hello world”

    安装Java8 为什么要安装java8? java8和小破站的教程同步. 安装方法: 1.官网安装(我踩雷了,下载得慢,不过最后安装成功了!) 2.镜像网站:清华镜像 3.公众号(网上的全是套路了) ...

  9. 【大型软件开发】开发日志(五).net框架与C++的融合:CLR——C++调用C#的DLL

    做什么? 先说一下场景,现在正在开发一个Qt ActiveServer,也就是用一个应用程序去向其他的组件暴露接口,以达到提供服务的目的. 然后新版的框架要提供大部分功能,也就是要重做大部分模块.现在 ...

  10. 自己动手从零写桌面操作系统GrapeOS系列教程——8.x86介绍

    由于GrapeOS目前只支持x86,所以本讲我们简单的介绍一下x86. 百度百科上是这样介绍的:x86泛指一系列基于Intel 8086且向后兼容的中央处理器指令集架构. 中央处理器就是我们平时说的C ...