dapper+linq+json+ztree构建树
dapper获取实体的集合
/// <summary>
/// 获取表tb_sys_zhuowei所有数据
/// </summary>
public IEnumerable<Model_tb_sys_zhuowei> SelectAll_tb_sys_zhuowei()
{
using (IDbConnection conn = OpenConnection())
{
const string query = @"select * from tb_sys_zhuowei order by addtime desc";
return conn.Query<Model_tb_sys_zhuowei>(query, null);
}
}
linq处理集合,并通过Newtonsoft处理成json
protected string GetTree()
{
MyProject.DataOrm dao = new MyProject.DataOrm();
IEnumerable<MyProject.Model_tb_sys_zhuowei> list = dao.SelectAll_tb_sys_zhuowei();
var q = from x in list
orderby x.louceng
group x by x.louceng into g //按楼层分组
select new
{
name = g.Key.ToString() + "楼",
open = true,
children = from x2 in g
orderby x2.quyu
//where x2.louceng == g.Key
group x2 by x2.quyu into k //按区域分组
select new
{
name = k.Key.Length == 2 ? "包间" : k.Key + "区",
click = "loadzw('" + g.Key.ToString() + "-" + k.Key + "')"
}
//select new
//{
// name = x2.quyu.Length == 2 ? "包间" : x2.quyu + "区",
// click = "loadzw('" + g.Key.ToString() + "-" + x2.quyu + "-" + x2.number.ToString() + "')"
//}
}; var templist = q.ToList();
return Newtonsoft.Json.JsonConvert.SerializeObject(templist, Newtonsoft.Json.Formatting.Indented);
}
[{
"name": "1楼",
"open": true,
"children": [{
"name": "A区",
"click": "loadzw('1-A')"
},
{
"name": "B区",
"click": "loadzw('1-B')"
},
{
"name": "包间",
"click": "loadzw('1-BJ')"
}]
},
{
"name": "2楼",
"open": true,
"children": [{
"name": "A区",
"click": "loadzw('2-A')"
}]
}]
前端ztree构建树
<script src="../../js/jquery-1.6.min.js" type="text/javascript"></script>
<script src="../../js/jquery.ztree.core-3.5.min.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
var setting = {};
// var zNodes = [
// { name: "1楼", open: true,
// children: [
// { name: "A区", click: "loadzw('1-A')" },
// { name: "B区", click: "loadzw('1-B')" },
// { name: "C区", click: "loadzw('1-C')" }
// ]
// },
// { name: "2楼", open: true,
// children: [
// { name: "A区", click: "loadzw('2-A')" },
// { name: "B区", click: "loadzw('2-B')" },
// { name: "C区", click: "loadzw('2-C')" }
// ]
// },
// { name: "3楼", open: true,
// children: [
// { name: "A区", click: "loadzw('3-A')" },
// { name: "B区", click: "loadzw('3-B')" },
// { name: "C区", click: "loadzw('3-C')" }
// ]
// }
// ];
var zNodes = <%=GetTree() %> $(document).ready(function () {
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
});
//--> function loadzw(kk) {
alert(kk);
}
</script>
效果
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSm95aGVu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
版权声明:本文博客原创文章,博客,未经同意,不得转载。
dapper+linq+json+ztree构建树的更多相关文章
- 一个JSON解构赋值给另一个字段不同的JSON
往数据里添加JSON字符串 // 往数据里添加JSON字符串 var arr = []; var json ={"name":"liruilong"," ...
- 设计与实现简单而经常使用的权限系统(四):无需维护level,递归构建树
第三篇中.我们通过维护节点的深度level,通过迭代全部的节点,仅仅须要一次,就构造了树. 本篇.换一种方式. 优点是:不维护节点的深度level,添加和改动节点时,也不用维护.递归实现,代码比較清 ...
- PAT-1147(Heaps)最大堆和最小堆的判断+构建树
Heaps PAT-1147 #include<iostream> #include<cstring> #include<string> #include<a ...
- Dapper操作MySQL数据库获取JSON数据中文乱码
前言 在项目中利用Dapper将JSON数据存储到MySQL数据库,结果发现JSON数据中的中文乱码,特此记录,希望对存储JSON的童鞋能有所帮助,文中若有错误之处,还望批评指正. Dapper获取J ...
- WPF:使用Json.NET在TreeView中树形显示JSON数据
原文 WPF:使用Json.NET在TreeView中树形显示JSON数据 据 读者可以参考这个开源的可以树形显示XML和JSON的工具: Mgen Object 603:XML/JSON树形显示小工 ...
- Python 解析构建数据大杂烩 -- csv、xml、json、excel
Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记语言 Html ,但主要对文档和数据 ...
- zTree实现权限列表简单实例
zTree的简单实例 zTree 是一个依靠jQuery 实现的多功能 "树插件".优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. zTree官网 zTreeAP ...
- (1-1)入门—最简单的树(使用json数据)
1.<!DOCTYPE html>是必须的. 2.zTree 的容器 className 别忘了设置为 "ztree". 使用ztree创建树,首先要引用ztree相关 ...
- zTree异步生成数据时无法获取到子节点的选中状态
最近在项目中遇到一个问题,需求如下: 根据选中不同的人员(ID)向后台发送ajax请求,通过返回的数据来生成该人员的权限访问树,该树目录最少为3级目录,在生成的时候会自动勾选上次保存过的选中状态,点击 ...
随机推荐
- 解决:Could not find debuginfo pkg for dependency package glibc-2.12-1.132.el6_5.3.i686
场景: (gdb) break main Breakpoint 1 at 0x8048417 (gdb) r Starting program: /usr/local/src/ccode/ch11/s ...
- DESCryptoServiceProvider加密解密的简单使用例子
DES.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using S ...
- Duanxx的C++学习: const指针具体解释
Const指的是一个编译时的常量. keywordconst使得代码能够确定一个变量能否够被改动. 使用了const后,能够防止对变量或者指针的改动:更重要的是,const的引用能够防止对所引用的对象 ...
- vs2015 安装问题汇总
1. The product version that you are trying to set up is earlier than the version already installed o ...
- 《Linux内核设计与实现》的地址空间读书笔记的过程
1.核心区域进程包括各种内存对象 种内存对象,比方: 1.可运行文件代码能够包括各种内存映射,称为代码段(text section). 2.可运行文件的已初始化全局变量的内存映射,称为数据段(data ...
- 【leetcode列】3Sum
现在的问题是,我开始思考:一是制定了一些,然后设置这个数字,除了里面找到两个数字.最后,计算和.重复,供N的数量,需要N-2周期. 我的问题是如何找到的其他两个数字,其实,我想引用Two Sum内部解 ...
- 无法识别的属性“targetFramework”。请注意,属性名是大写和小写。错误的解决方案
"/CRM"应用server错. 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错.请检查以下的特定错误具体信息并适当地改动配置文件. 分析器错误消息: 无法识别的属性 ...
- 集群部署及测试SolrCloud-5
SolrCloud-5.2.1 集群部署及测试 一. 说明 Solr5内置了Jetty服务,所以不用安装部署到Tomcat了,网上部署Tomcat的资料太泛滥了. 部署前的准备工作: 1. 将各主 ...
- Codeforces 9A-Die Roll(意甲冠军)
A. Die Roll time limit per test 1 second memory limit per test 64 megabytes input standard input out ...
- effective c++ 条款3 use const whereever you can
1 const 传达的意思应该是这个变量是常量不能更改 2 const 在 * 左边表示数据是const,在右边表示指针是const // char greeting[] = "hello& ...