EasyUI TreeGrid DataTable转换数据实现案例
C#部分
/// <summary>
/// Handler1 的摘要说明
/// </summary>
public class Handler1 : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
int OneID = int.Parse(context.Request["ID"]);
string sql = "SELECT id, OneID, TreeID, Text, Cfj FROM MenuTree where OneID="+OneID+" order by TreeID,reorder,id "; DataTable dt = DbHelper.QueryDataTable(sql);
string json2 = TableToEasyUITreeJson(dt, "TreeID", "", "id", "Text").Substring();
context.Response.Write(json2.ToString());
} /// <summary>
/// 递归将DataTable转化为适合jquery easy ui 控件tree ,combotree 的 json
/// 该方法最后还要 将结果稍微处理下,将最前面的,"children" 字符去掉.
/// </summary>
/// <param name="dt">要转化的表</param>
/// <param name="pField">表中的父节点字段</param>
/// <param name="pValue">表中顶层节点的值,没有 可以输入为0</param>
/// <param name="kField">关键字字段名称</param>
/// <param name="TextField">要显示的文本 对应的字段</param>
/// <returns></returns>
public static string TableToEasyUITreeJson(DataTable dt, string pField, string pValue, string kField, string TextField)
{
StringBuilder sb = new StringBuilder();
string filter = string.Empty;
if (pValue.ToString() == "")
{
filter = string.Format("{0} is null", pField);
}
else
{
filter = string.Format("{0}='{1}'", pField, pValue);
}
DataRow[] drs = dt.Select(filter);
if (drs.Length < )
return "";
sb.Append(",\"children\":[");
foreach (DataRow dr in drs)
{
string pcv = dr[kField].ToString();
sb.Append("{");
sb.AppendFormat("\"id\":\"{0}\",", dr[kField].ToString());
sb.AppendFormat("\"text\":\"{0}\"", dr[TextField].ToString());
sb.Append(TableToEasyUITreeJson(dt, pField, pcv, kField, TextField).TrimEnd(','));
sb.Append("},");
}
if (sb.ToString().EndsWith(","))
{
sb.Remove(sb.Length - , );
}
sb.Append("]");
return sb.ToString(); }
html 部分
<able id="Table1" style="width:600px;height:400px"></table>
<script type="text/javascript">
var dd = '[{"id":"0001","text":"1","children":[{"id":"00010001","text":"4","children":[{"id":"000100010001","text":"7","children":[{"id":"0001000100010001","text":"9","children":[{"id":"00010001000100010001","text":"10","children":[{"id":"000100010001000100010001","text":"11","children":[{"id":"0001000100010001000100010001","text":"12"}]}]}]}]},{"id":"000100010002","text":"8"}]},{"id":"00010002","text":"5"},{"id":"00010003","text":"6"}]},{"id":"0002","text":"2"},{"id":"0003","text":"3"}]'; $(function(){
$('#Table1').treegrid({
url: '../Handler1.ashx?id=2', idField:'id',
treeField: 'text',
columns:[[
{ field: 'text', title: 'text', width: 200, align: 'left' },
]]
}); }) </script>
EasyUI TreeGrid DataTable转换数据实现案例的更多相关文章
- easyui treegrid 动态展开数据(暂记)
ClassifyAdminSynMsgSvr.GetCLFLList("<%=CurUTag %>", 1, "", function (ret) ...
- 将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据
领导让在存储过程中批量添加数据,找出效率最高的,我看到后台代码后,发现可以将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据,知道还有其 ...
- C# DataTable 转换成JSON数据
原文:C# DataTable 转换成JSON数据 using System; using System.Collections.Generic; using System.Data; using S ...
- 数据网格和树-EasyUI Datagrid 数据网格、EasyUI Propertygrid 属性网格、EasyUI Tree 树、EasyUI Treegrid 树形网格
EasyUI Datagrid 数据网格 扩展自 $.fn.panel.defaults.通过 $.fn.datagrid.defaults 重写默认的 defaults. 数据网格(datagrid ...
- 基于EasyUI Treegrid的权限管理资源列表
1. 前言 最近在开发系统权限管理相关的功能,主要包含用户管理,资源管理,角色管理,组类别管理等小的模块.之前的Web开发中也用过jQueryEasyUI插件,感觉这款插件简单易用,上手很快.以前用到 ...
- DataTable 转换成 Json的3种方法
在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...
- 将DataTable转换成CSV文件
DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表.CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记 ...
- 使用反射将DataTable的数据转成实体类
利用反射避免了硬编码出现的错误,但是实体类的属性名必须和数据库名字对应(相同) 1.利用反射把DataTable的数据写到单个实体类 /// <summary> ///利用反射把DataT ...
- C#将DataTable转换成list的方法
本文实例讲述了C#将DataTable转换成list及数据分页的方法.分享给大家供大家参考.具体如下: /// <summary> /// 酒店评论列表-分页 /// </su ...
随机推荐
- 购物车数字加减按钮HTML+CSS+JS(有需要嫌麻烦的小伙伴拿走不谢)
之前在写详情页的时候,如下图 因为自己嫌麻烦,就去看其他网站是怎么写的,想直接拿来用,后来看来看去觉得写得很麻烦,于是最后还是决定自己写,附上HTML+CSS+JS代码,一条龙一站式贴心服务2333 ...
- Python为什么要self
Python要self的理由 Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数 (self ),但在调用这个方法的时候不必为这个参数赋值 (显胜于隐 的引发). ...
- WIN32服务程序(一):创建服务
MSDN中有安装服务的例子Installing a Service(可点击进入),我们这里的创建服务,和MSDN里的例子基本上是一样的.这里做一些简单的说明: 打开控制面板,管理工具,服务.我们看到的 ...
- NPOI 格式设置2—时间,千分位,繁体,小数位
在Excel中我们经常要设置格式,比如说日期格式(yyyymmdd).小数点格式(1.20).货币格式($2000).百分比格式(99.99%)等等,这些东西在过去我们恐怕只能在服务器端生成好,不但增 ...
- SQL中跨服务器查询
1.跨库查询 select * from [库名].dbo.表名 2.跨库查询 select * from OPENDATASOURCE('SQLOLEDB','Data Source=服务器名或IP ...
- Java笔记9-正则表达式
提纲: 1.正则表达式 2.常见的异常 3.内部类------------------------------------------------------------------JDK 1.4以后 ...
- js中toString和valueOf方法的区别
toString 方法 返回对象的字符串表示形式. 语法:objectname.toString([radix]) objectname 必需.要为其搜索字符串表示形式的对象. radix 可选.为将 ...
- 【Cocos2d-x 3.x】 调度器Scheduler类源码分析
非个人的全部理解,部分摘自cocos官网教程,感谢cocos官网. 在<CCScheduler.h>头文件中,定义了关于调度器的五个类:Timer,TimerTargetSelector, ...
- Swift解算法——台阶问题
题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级. 求总共有多少总跳法,并分析算法的时间复杂度. 首先对题目进行分析: 台阶一共有n级 因此当n = 1时——只有一种跳法 当 ...
- python 模拟用户登录代码
需求:输入用户名,判断用户是否被锁定,锁定则退出,否则进入密码验证,输入三次错误密码之后此用户被锁定. userlist.txt里,用":"将用户名.密码.状态码分开: [root ...