国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

用TreeView構建樹型目錄(C#版)

2024-07-21 02:19:47
字體:
來源:轉載
供稿:網友

引言:

參與了一個大型社區程序的開發,現在將相關開發經驗陸續總結出來,和大家探討一下。本節內容主要主要討論的是用treeview生成無限級分類的樹型目錄的問題,相關代碼摘錄自社區程序中的一個文章發布管理系統中的目錄管理部分。



一、數據庫設計

bbs_bestarticlefolder 精華區目錄表

key: folderid

field name
type
length
default
description

folderid
int
4

id(自動編號)

parentfolderid
int
4
0
父目錄id

foldername
nvarchar
80
 
目錄名

boardid
int
4
0
版塊id

createruserid
int
4
0
創建者id

addtime
datetime
8
getdate()
創建時間


二、樹型目錄構建過程

1、安裝treeview控件,我想大多數人都是會安裝的,不會安裝的去找相關文章一下下。

2、具體實現:

a 數據生成

#region 樹的數據生成事件 

private dataview createdateview(int boardid)

{

bbsbestarticlefoldercollection bafc=new bbsbestarticlefoldercollection();

bafc.getinfobyparentfolderid(boardid,-1);

int bafccount=bafc.count;

datatable dt = new datatable("table");

dt.columns.add("folderid",system.type.gettype("system.string"));

dt.columns.add("foldername",system.type.gettype("system.string"));

dt.columns.add("parentfolderid",system.type.gettype("system.string"));

for(int i=0;i<bafccount;i++)

{

datarow dr=dt.newrow();

dr[0]=bafc[i].id;

dr[1]=bafc[i].foldername;

dr[2]=bafc[i].parentfolderid;

dt.rows.add(dr);

}



dv=dt.defaultview;

return dv;

}



#endregion

一點說明:bbsbestarticlefoldercollection對象是個集合類,里面存儲了所有符合條件的數據集合,getinfobyparentfolderid是其中的一個方法,根據一定條件填充集合類的,此文主要講treeview構建樹型目錄,此處會在另外的文章中詳述。



b

#region treeview節點生成方法

private void createtree(treenodecollection foldertreenodecollection ,int parentid)

{

dv.rowfilter= "parentfolderid="+parentid;

int tmpparentfolderid=0;

foreach(datarowview drv in dv)

{

treenode tn=new treenode();

tn.id=drv.row["folderid"].tostring();

tn.text=drv.row["foldername"].tostring().trim();

tmpparentfolderid=int32.parse(drv.row["parentfolderid"].tostring().trim());

//tn.checkbox=true;

foldertreenodecollection.add(tn);



createtree(foldertreenodecollection[foldertreenodecollection.count - 1].nodes,int32.parse(tn.id));

}





}



一點解釋:遞歸構建樹的各級節點,其中的dv就是上一個方法生成的dataview



c 取得數據的方法有了,生節節點的方法也有了,那么剩下的就是調用了



createtree(treeview1.nodes,0);



一點解釋:treeview1是控件id,這個大家都知道吧,這里的0其實就是表示頂級目錄,從頂級目錄遞歸調用下去di。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 无锡市| 和林格尔县| 蓝山县| 织金县| 赤峰市| 达尔| 博白县| 馆陶县| 六盘水市| 南雄市| 道真| 承德市| 夏邑县| 柞水县| 高碑店市| 彝良县| 巢湖市| 商都县| 临猗县| 巧家县| 察哈| 娱乐| 久治县| 凉城县| 石柱| 莱州市| 龙川县| 庆城县| 麦盖提县| 锡林浩特市| 萨迦县| 保山市| 拜泉县| 河西区| 斗六市| 武穴市| 玉溪市| 襄城县| 连平县| 连平县| 乐安县|