日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2025/5/22 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [jillzhang]ExtJs与WCF交互:生成树 --数据库版补充 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文見:
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交互:生成树 --数据库版补充的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。