哎哟,好久没写什么这个虽然没人看的博客了,其实这段时间情绪非常低谷,就没有写博客了,不过我还是回来了,回到正题,在前端页面编程的时候,我们经常用到树状,用原始的树状呢,功能没有那么强大,所以这个时候

我们需要引入一个非常好用的插件,ztree,其实就是JQuery的一个插件,这个是接口文档:http://www.treejs.cn/v3/api.php

然后呢  我们在页面中使用呢,就的先引入ztree ,这个是下载地址:https://gitee.com/zTree/zTree_v3/tree/master/js

这个是我引入的包:

下载之后放在你的js文件夹中方便引入就好了,然后就是在页面中引入:

<script src="~/js/ztree/jquery.ztree.core.min.js"></script>
<script src="~/js/ztree/jquery.ztree.exhide.min.js"></script>
<link href="~/css/zTreeStyle.css" rel="stylesheet" />
<script src="~/js/ztree/jquery.ztree.exedit.min.js"></script>
<script src="~/js/fuzzysearch.js"></script>

然后就可以开始使用了:

先定义一个<ul id="shuai" class="ztree"></ul>

然后 先写加载树状数据的函数:

 $(function () {
Tree();
}); function Tree() {
var setting = { data: {
simpleData: {
enable: true
}
},
view: {
showIcon: false }
,
callback: {
onClick: TreeClick
}
};
$.ajax({
url: "", //这个是请求数据的action url
type: "get",
async: false,
success: function (data) { // data返回的数据
$.fn.zTree.init($("#AccountTree"), setting, data.data);
//初始化模糊搜索方法
fuzzySearch('AccountTree', '#keyword', null, true); //引入模糊查询的插件就可以使用这个方法 }
});
} function TreeClick(event, treeId, treeNode) {
$('.layui-tab-title li').removeClass('layui-this');
var treeObj = $.fn.zTree.getZTreeObj("AccountTree");
var nodes = treeObj.getSelectedNodes();
if (treeNode.pId == null) {
//点击事件,当点击父节点时候,进行的操作
}
else { }
}

这样就可以实现基本的树状结构啦,非常简单和方便,后端的话需要这样实现:

需要一个Nodelist去传递数据到前端页面:

public class NodeTree
{
/// <summary>
/// 节点Id
/// </summary>
public string Id { get; set; } /// <summary>
/// 父节点Id
/// </summary>
public string PId { get; set; } /// <summary>
/// 节点名称
/// </summary>
public string Name { get; set; } /// <summary>
/// 是否选中
/// </summary>
public bool Checked { get; set; }
}
 public async Task<List<NodeTree>> GetSocialTree(string[] supplier)
{
// 返回的所有节点
List<NodeTree> returnNodes = new List<NodeTree>(); // 父节点
List<NodeTree> Nodes = new List<NodeTree>(); // 子节点
List<NodeTree> FNodes = new List<NodeTree>(); var query = db.database..Select(x => new NodeTree
{
Id = x.Name,
Name = x.Name,
PId = "0"
}); Nodes = await query.ToListAsync(); var queryCity = db.SocialAccount.Where.Select(x => new NodeTree
{
Id = x.Id,
Name = x.City,
PId = x.Name
}); FNodes = await queryCity.ToListAsync(); returnNodes.AddRange(Nodes);
returnNodes.AddRange(FNodes);
return returnNodes;
}

这段代码是伪代码,只是举一个例子看起来更直观,总之返回list<nodes>到前端页面,这个时候树状就可以发挥作用了,非常简单和方便。大致就是这样了。

最新文章

  1. linux进程查找及杀死
  2. c++表达式的一些小小的注意事项
  3. javascript陷阱,一不小心你就中招了
  4. windows系统 安装MongoDB 32位
  5. hdu 4632区间 dp
  6. MYSQL操作的一些知识点,持续更新中&#183;&#183;&#183;&#183;
  7. 【计算几何初步-代码好看了点线段相交】【HDU2150】Pipe
  8. spark in eclipse---Spark学习笔记3
  9. jquery ajax请求成功,数据返回成功,seccess不执行的问题
  10. xmlns=&quot;&quot;
  11. iOS swift的xcworkspace多项目管理(架构思想)
  12. 深入理解Redis内存模型
  13. SpringBoot分布式 - SpringCloud
  14. 内训--PPT演示技巧
  15. 通过 ulimit 改善系统性能
  16. php输出日志
  17. Day4 数组
  18. Centos的一个find命令配合rm删除某天前的文件
  19. ogre3d环境配置与简单程序示例
  20. IT兄弟连 JavaWeb教程 Servlet会话跟踪 创建Cookie

热门文章

  1. AS开发实战第二章学习笔记——其他
  2. Spring boot配置注意事项
  3. centos 开机执行的命令
  4. SQL Server -&gt;&gt; PARSE函数
  5. phpstorm2017使用快捷键
  6. 设计模式:享元(FlyWeight)模式
  7. 用CI框架向数据库中实现简单的增删改查
  8. UEditor 中配置可以跨域访问的图片路径
  9. angular里forRoot的作用
  10. ClipboardJS 实现JS复制到剪切板