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构建树的更多相关文章

  1. 一个JSON解构赋值给另一个字段不同的JSON

    往数据里添加JSON字符串 // 往数据里添加JSON字符串 var arr = []; var json ={"name":"liruilong"," ...

  2. 设计与实现简单而经常使用的权限系统(四):无需维护level,递归构建树

    第三篇中.我们通过维护节点的深度level,通过迭代全部的节点,仅仅须要一次,就构造了树.  本篇.换一种方式. 优点是:不维护节点的深度level,添加和改动节点时,也不用维护.递归实现,代码比較清 ...

  3. PAT-1147(Heaps)最大堆和最小堆的判断+构建树

    Heaps PAT-1147 #include<iostream> #include<cstring> #include<string> #include<a ...

  4. Dapper操作MySQL数据库获取JSON数据中文乱码

    前言 在项目中利用Dapper将JSON数据存储到MySQL数据库,结果发现JSON数据中的中文乱码,特此记录,希望对存储JSON的童鞋能有所帮助,文中若有错误之处,还望批评指正. Dapper获取J ...

  5. WPF:使用Json.NET在TreeView中树形显示JSON数据

    原文 WPF:使用Json.NET在TreeView中树形显示JSON数据 据 读者可以参考这个开源的可以树形显示XML和JSON的工具: Mgen Object 603:XML/JSON树形显示小工 ...

  6. Python 解析构建数据大杂烩 -- csv、xml、json、excel

    Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记语言 Html ,但主要对文档和数据 ...

  7. zTree实现权限列表简单实例

    zTree的简单实例 zTree 是一个依靠jQuery 实现的多功能 "树插件".优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. zTree官网 zTreeAP ...

  8. (1-1)入门—最简单的树(使用json数据)

    1.<!DOCTYPE html>是必须的. 2.zTree 的容器 className 别忘了设置为 "ztree". 使用ztree创建树,首先要引用ztree相关 ...

  9. zTree异步生成数据时无法获取到子节点的选中状态

    最近在项目中遇到一个问题,需求如下: 根据选中不同的人员(ID)向后台发送ajax请求,通过返回的数据来生成该人员的权限访问树,该树目录最少为3级目录,在生成的时候会自动勾选上次保存过的选中状态,点击 ...

随机推荐

  1. Android 自己实现 NavigationView [Design Support Library(1)]

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46405409: 本文出自:[张鸿洋的博客] 一.概述 Google I/O 2 ...

  2. HDU 1164 Eddy&#39;s research I【素数筛选法】

    思路:将输入的这个数分成n个素数的相乘的结果,用一个数组存储起来.之后再输出就能够了 Eddy's research I Time Limit: 2000/1000 MS (Java/Others)  ...

  3. Visual Studio跨平台开发实战(5) - Xamarin Android多页面应用程式开发

    原文 Visual Studio跨平台开发实战(5) - Xamarin Android多页面应用程式开发 前言 大部份的Andr​​oid 都具有实体或虚拟的Back键. 因此在处理多页面应用程式时 ...

  4. 无法打开登录所请求的数据库 "ASPState"。登录失败。 用户 'NT AUTHORITY/SYSTEM' 登录失败。

    原文:无法打开登录所请求的数据库 "ASPState".登录失败. 用户 'NT AUTHORITY/SYSTEM' 登录失败. 无法打开登录 'ASPState' 中请求的数据库 ...

  5. CheckBoxList的操作查询是否被选中设置或者得到

    在项目中我们可能会经常遇到一收集多选信息的情况,比如做注册的时候要收集个人爱好,那时候大家第一个想到的肯定是CheckBoxList.那我们怎么来获取到CheckBoxList的值并且存入数据库呢?? ...

  6. Oracle SQL Lesson (1) - 使用SQL Select语句获取数据

    第一节课: 启动数据库并且使用特定用户连接:su - oracle; 启动sqlplus并且使用sys连接:conn / as sysdba; 启动数据库:startup; 解锁用户:alter us ...

  7. Why 使用TLS记录封装IP层VPN IS A Bad Idea

    一个很自然的想法,使用TLS套餐一IP数据报实现第三层VPN.这种想法必须经过深思熟虑的,但不幸的是,.这是一个错误的想法.有文章<Why TCP Over TCP Is A Bad Idea& ...

  8. Intent有可能的使用(两)

    Intent作为联系各Activity之间的纽带,其作用并不只只限于简单的数据传递. 通过其自带的属性.事实上能够方便的完毕非常多较为复杂的操作. 比如直接调用拨号功能.直接自己主动调用合适的程序打开 ...

  9. Bestcoder Round#45

    1001 给定数n,要我们求该数的二进制中有多少组1, 相邻的1称为1组, 直接位运算摸你即可 #include <stdio.h> #include <string.h> # ...

  10. Bulk Insert Data

    Bulk Insert Data 命名空间:Oracle.DataAccess.Client 组件:Oracle.DataAccess.dll(2.112.1.0) ODP.NET 版本:ODP.NE ...