原文见:
http://www.cnblogs.com/jillzhang/archive/2008/06/15/1222233.html
已经讲得很清楚,本文只是将该篇WCF的方法换成数据库版

1.分类表T_Class主要结构
F_ID  主键ID
F_ClassName 分类名称
F_ParentID 父类ID

2.扩展treeNode类

[DataContract]
public class treenode
{
[DataMember]
public string id;

[DataMember]
public string text;

[DataMember]
public List<treenode> children = new List<treenode>();

[DataMember]
public string cls;

[DataMember]
public bool leaf;

[DataMember]
public string parentid;
}

即增加了一个parentid成员

3.修改WCF中的方法

[OperationContract]
[WebInvoke(ResponseFormat = WebMessageFormat.Json)]
public treenode[] GetTree()
{
    using (DBDataContext db = new DBDataContext())
    {
    if (db.Connection != null && db.Connection.State != System.Data.ConnectionState.Open)
    {
        db.Connection.Open();
    }
    var query = db.T_Classes.Select(c => new { id = c.F_ID, name = c.F_ClassName, parentid = c.F_ParentID });

foreach (var u in query)
    {
        treenode _node = new treenode();
        _node.id = u.id.ToString().ToLower();
        _node.parentid = u.parentid.ToString().ToLower();
        _node.text = u.name;
        int i = db.T_Classes.Count(c => c.F_ParentID == u.id);
        if (i > 0)
        {
        _node.leaf = false;
        _node.cls = "folder";
        }
        else
        {
        _node.leaf = true;
        _node.cls = "file";
        }
        GenTreeNode(NodeLists, _node);
    }
    db.Connection.Close();
    }
    return NodeLists.ToArray();
}

public List<treenode> NodeLists = new List<treenode>();

public List<treenode> GenTreeNode(List<treenode> nodeList, treenode node)
{
    bool flag = false;
    foreach (treenode n in nodeList)
    {
    if (n.id == node.parentid)
    {
        n.children.Add(node);
        flag = true;
        break;
    }
    }
    if (!flag)
    {
    nodeList.Add(node);
    }
    return nodeList;
}

运行效果图如下:

转载于:https://www.cnblogs.com/yjmyzz/archive/2008/08/27/1277407.html

[jillzhang]ExtJs与WCF交互:生成树 --数据库版补充相关推荐

  1. ExtJs与WCF交互:生成树

    上文做了下Ajax与WCF进行json交互的简单介绍,本文阐述一个具体的实际应用:ExtJs与WCF交互,生成树.也很简单.先看看最终的效果吧: 第一步: 创建一个.net framework 3.5 ...

  2. 用ExtJs+Linq+Wcf打造简单grid

    本系列文章列表 1)Ajax访问Xml Web Service的安全问题以及解决方案 2)Ajax与WCF交互-WCF之美 3) Ajax与Wcf交互-JSON 4) ExtJs与WCF交互:生成树 ...

  3. 转载——Java与WCF交互(一):Java客户端调用WCF服务

    最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...

  4. Java与WCF交互(一):Java客户端调用WCF服务

    最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...

  5. Java+MySQL学生选课与成绩管理系统(数据库版)

    一.项目要求 学生选课与成绩管理系统(数据库版) 1.配置MySQL数据库 2.利用java+MySQL实现系统各个功能 3.功能包括: (1)系统交互界面,如下图所示 (2)学生信息的增删改查.学生 ...

  6. 智慧零售erp通用版管理系统+门店管理+商品管理+厂商管理+财务管理+销售管理+仓储管理+Axure高保真交互ERP通用版零售行业web端简易版管理系统

    作品介绍:智慧零售erp通用版管理系统+门店管理+商品管理+厂商管理+财务管理+销售管理+仓储管理+Axure高保真交互ERP通用版零售行业web端简易版管理系统 原型交互及下载请点击:https:/ ...

  7. 智慧电商erp通用版管理系统+采购管理+仓库管理+订单管理+财务管理+系统管理+Axure高保真交互ERP通用版电商web端管理系统+全局说明+竞品分析+协同办公

    作品介绍:智慧电商erp通用版管理系统+采购管理+仓库管理+订单管理+财务管理+系统管理+Axure高保真交互ERP通用版电商web端管理系统+全局说明+竞品分析+协同办公 原型交互及下载地址请点击: ...

  8. php极速链,php PHP极速链 战群源码系列(全自动采集更新+引流神器无数据库版) WEB(ASP,PHP,...) 261万源代码下载- www.pudn.com...

    文件名称: php下载  收藏√  [ 5  4  3  2  1 ] 开发工具: PHP 文件大小: 15699 KB 上传时间: 2015-08-10 下载次数: 5 提 供 者: 田维莉 详细说 ...

  9. Java与WCF交互(一)补充:用WSImport生成WSDL的Java客户端代码

    在<Java与WCF交互(一):Java客户端调用WCF服务> 一 文中,我描述了用axis2的一个Eclipse控件生成WCF的Java客户端代理类,后来有朋友建议用Xfire.CXF, ...

最新文章

  1. 李德毅院士:希望智能驾驶成为我国继高铁之后又一张新名片
  2. 提高cube性能的一些方法(一)
  3. lambda Kappa iota比较
  4. SAP评估控制 Valuation control
  5. 为考试而准备1——无线WCDMA 网规精选(04年)
  6. 64位 linux 中 oracle 11g dbca 报 out of memory 错误
  7. 转载:matlab流场可视化后处理
  8. PPT+VBA实现计时(倒计时)展示
  9. css3实现数字滚动效果,JS+CSS实现滚动数字时钟效果
  10. html5 canvas 虚线,HTML5 canvas画带箭头的虚线
  11. 基于服务的多源异构数据整合平台解决方案
  12. Android-Material-Sloth
  13. C/C++实现的游戏角色名称名字随机生成代码
  14. 关于神经网络算法使用场景的思考
  15. c语言开发的cli,Package - cyy-cli
  16. Java多线程面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次
  17. 关于Chrome不显示图片的问题
  18. win11系统下安装lighttools8.6无加密狗版的方法
  19. 梯度grad公式_FLAC3D梯度计算详解
  20. 记一次usb3.0千兆网卡的选购经历;

热门文章

  1. saltstack配置管理之YAML(二)
  2. .Net 中HashTable,HashMap 和 Dictionarykey,value 和ListT和DataTable的比较
  3. $NF和 NF的区别
  4. Vue.js 整理笔记
  5. ytu 1057: 输入两个整数,求他们相除的余数(带参的宏 + 模板函数 练习)
  6. 解决MSSQL 2008不能用IP登录的问题
  7. c++自定义的数据库类
  8. 34 linux监控平台
  9. 使用的是html5的canvas将文字转换成图片
  10. ngx_lua_API 指令详解(一)ngx.timer.at 指令