版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——數(shù)據(jù)庫中樹形圖的用法的用法如下:
樹形圖用于顯示依照樹形結(jié)構(gòu)進行組織的數(shù)據(jù),其用途比較廣泛,如計算機中的文件系統(tǒng)(Windows中的資源管理器)、企業(yè)或公司的組成結(jié)構(gòu)等。我們知道在Windows下VB、PB、Delphi等工具提供了一個功能很強的樹型控件TreeView,利用Treeview控件可以便利地開發(fā)樹形圖。然而在網(wǎng)頁上實現(xiàn)樹形圖就不那么簡單了,現(xiàn)在在中利用微軟提供的InternetExplorerWebControls它使得網(wǎng)頁上的樹形圖開發(fā)與在Windows下一樣的便利,一樣的功能強大,甚至更靈活。
本文介紹用InternetExplorerWebControls開發(fā)樹形圖的方法,由于樹形圖結(jié)構(gòu)較繁雜,使用起來常不知如何下手。筆者結(jié)合最近剛為公司用ASP.NET編寫的應(yīng)用程序管理器這一具體實例,詳細(xì)闡述在ASP.NET下如何將InternetExplorerWebControls的使用與數(shù)據(jù)庫聯(lián)系起來,實現(xiàn)數(shù)據(jù)分任意多層顯示,便利地進行增加、修改、刪除、移動操作。筆者希望通過對該實例的闡述,達(dá)到拋磚引玉的效果,與各位同仁相互交流,共同進步。
InternetExplorerWebControls不在VS.NET的標(biāo)準(zhǔn)ServerControl中,要到微軟的站點上下載,下載地址是:
/downloads/samples/internet/default.aspurl=/Downloads/samples/Internet/ASP_DOT_NET_ServerControls/WebControls/default.asp
下載安裝后第一次使用時,要右擊工具箱CustomizeToolbox.NETFrameworkComponents中找到Micosoft.Web.UI.WebControls.Treeview后選中,這樣Treeview控件就出現(xiàn)在工具箱中了。
一、樹的建立
具體方法是:創(chuàng)立一個數(shù)據(jù)庫,設(shè)計樹圖信息表TREE_INFO,包含NODEID、PARENTID、NODENAME、ADDErss、ICON字段,其它字段根據(jù)實際業(yè)務(wù)而定,節(jié)點名稱NODENAME將在樹型控件的節(jié)點上顯示,NODEID字段保存節(jié)點的唯一標(biāo)識號,PARENTID表示當(dāng)前節(jié)點的父節(jié)點號,標(biāo)識號組成了一個鏈表,記錄了樹上節(jié)點的結(jié)構(gòu)。設(shè)計一個Web窗體其上放置TreeView控件。
PRivateSubCreateDataSet()建立數(shù)據(jù)集
DimmyConnAsNewSqlConnection()
DimmyCmdAsNewSqlCommand(selectNODEID,NODENAME,PARENTID,ADDRESS,ICONfromTree_info,myConn)
DimmyDataAdapterAsNewSqlDataAdapter()
myConn.ConnectionString=application(connectstring)
myCmd.CommandText=
myCmd.Connection=myConn
myDataAdapter.SelectCommand=myCmd
myDataAdapter.Fill(ds,tree)
EndSub
建樹的基本思路是:從根節(jié)點開始遞歸調(diào)用顯示子樹
PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
CreateDataSet()
intiTree(TreeView1.Nodes,0)
EndSub
PrivateSubintiTree(ByRefNdsAsTreeNodeCollection,ByValparentIdAsInteger)
DimdvAsNewDataView()
DimdrvAsDataRowView
DimtmpNdAsTreeNode
DimintIdAsInteger
dv.Table=ds.Tables(tree)
dv.RowFilter=PARENTID=parentId
ForEachdrvIndv
tmpNd=NewTreeNode()
strId=drv(NODE_ID)
tmpNd.ID=strId
tmpNd.Text=drv(NODE_NAME)
tmpNd.ImageUrl=drv(ICON).ToString
Nds.Add(tmpNd)
intiTree(Nds(Nds.Count-1).Nodes,intId)
Next
EndSub
二、增加、刪除樹節(jié)點
單純在Treeview上增加、刪除、修改節(jié)點只需用Nodes屬性的Add、Remove、等方法即可,值得注意的地方是VS.NET中Treeview的Nodes集合與VS6.0中的區(qū)別,VS6.0中的是一個大的集合,而VS.NET中的是分層的每個Node下都有Nodes屬性。增加、刪除、修改樹節(jié)點時與VS6.0相比有很大區(qū)別,特別是刪除時。
PrivateSubButAdd_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButAdd.Click在選定的節(jié)點下添加子節(jié)點
DimtmpNdAsNewTreeNode(),NdSelAsTreeNode
tmpNd.ID=GetNewId()
NdSel=TreeView1.GetNodeFromIndex(TreeView1.SelectedNodeIndex)選中的節(jié)點
tmpNd.Text=新節(jié)點
NdSel.Nodes.Add(tmpNd)
DimmyRowAsDataRow
myRow=ds.Tables(tree).NewRow()
myRow(NODE_NAME)=tmpNd.ID
myRow(NODE_DESCRipT)=新節(jié)點tmpNd.ID_NdSel.ID
myRow(PARENT_NAME)=NdSel.ID
ds.Tables(tree).Rows.Add(myRow)
EndSub
PrivateSubButDele_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesButDele.Click刪除選中的節(jié)點
DimidxAsString=TreeView1.SelectedNodeIndex()
GetNdCol(idx).Remove(TreeView1.GetNodeFromIndex(idx))
DimdvAsNewDataView(),recNoAsInteger
dv.Table=ds.Tables(tree)
dv.RowFilter=NODEID=NdId
dv.Delete(0)
EndSub
PrivateFunctionGetNdCol(ByValidxAsString)AsTreeNodeCollection
獲得選中節(jié)點的父節(jié)點的Nodes集合
DimcntAsInteger,iAsInteger
DimtmpNdsAsTreeNodeCollection
Dimidxs()AsString
idxs=Split(idx,.)
cnt=UBound(idxs)
Ifcnt=0Then
tmpNds=TreeView1.Nodes
Else
tmpNds=TreeView1.Nodes(CInt(idxs(0))).Nodes
Fori=1Tocnt-1
tmpNds=tmpNds(CInt(idxs(i))).Nodes
Next
EndIf
ReturntmpNds
EndFunction
三、修改、移動樹節(jié)點
由于服務(wù)器控件不支持鼠標(biāo)拖動事件,所以不能象Windows程序那樣通過拖動移動節(jié)點,這里是通過選擇父節(jié)點的方式。移動是通過在原位置刪除,新位置添加實現(xiàn)的,要注意在刪除時先保存節(jié)點信息。
PrivateSubTreeView1_SelectedIndexChange(ByValsenderAsObject,ByValeAsMicrosoft.Web.UI.WebControls.TreeViewSelectEventArgs)HandlesTreeView1.SelectedIndexChange
DimdvAsNewDataView()
dv.Table=ds.Tables(tree)
DimtmpNdAsTreeNode=TreeNdSel(e.OldNode),tmpNdsAsTreeNodeCollection
dv.RowFilter=NODEID=tmpNd.ID
dv(0)(NODE_DESCRIPT)=Me.TextBox1.Text
dv(0)(ADDRESS)=Me.TextBox2.Text
dv(0)(TARGET)=Me.TextBox3.Text
dv(0)(ICON)=Me.TextBox4.Text
Ifdv(0)(PARENTID).ToStringMe.DropDownList1.SelectedItem.ValueThen
移動節(jié)點
dv(0)(PARENT_NAME)=Me.DropDownList1.SelectedItem.Value
IfMe.DropDownList1.SelectedItem.Value=ROOTThen
tmpNds=TreeView1.Nodes
Else
tmpNds=FromIdToNode(Me.DropDownList1.SelectedItem.Value,TreeView1.Nodes).Nodes新的父節(jié)點的Nodes集合
EndIf
GetNdCol(e.OldNode).Remove(tmpNd)
tmpNds.Add(tmpNd)
EndIf
tmpNd.Text=Me.TextBox1.Text
tmpNd.ImageUrl=Me.TextBox4.Text
tmpNd=TreeView1.GetNodeFromIndex(TreeView1.SelectedNodeIndex)
dv.RowFilter=NODEID=tmpNd.ID
Me.TextBox1.Text=dv(0)(NODENAME).ToString
Me.TextBox2.Text=dv(0)(ADDRESS).ToString
Me.TextBox3.Text=dv(0)(TARGET).ToString
Me.TextBox4.Text=dv(0)(ICON).ToString
EndSub
PrivateFunctionFromIdToNode(ByValIDAsString,ByValNdsAsTreeNodeCollection)AsTreeNode
由關(guān)鍵字查找節(jié)點
DimiAsInteger
DimtmpNdAsTreeNode,tmpNd1AsTreeNode
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度醫(yī)療行業(yè)廣告宣傳制作合同3篇
- 二零二五年度建筑業(yè)離崗創(chuàng)業(yè)合同2篇
- 課程設(shè)計寫什么
- 二零二五年地產(chǎn)廣告折頁創(chuàng)意設(shè)計、印刷與售后合同2篇
- 2025年演講稿保護環(huán)境范文(2篇)
- 二零二五年度新能源廣告牌匾安裝與節(jié)能服務(wù)合同3篇
- 2025年醫(yī)院控?zé)煿ぷ饔媱澞0妫?篇)
- 企業(yè)公司目標(biāo)管理制度范文(2篇)
- 消防專職干部職責(zé)模版(3篇)
- 2025年人教版選擇性必修2生物下冊階段測試試卷
- 線上家長會模板
- 2024年200MW-400MWh電化學(xué)儲能電站設(shè)計方案
- 2024數(shù)據(jù)采集合同模板
- SH/T 3227-2024 石油化工裝置固定水噴霧和水(泡沫)噴淋滅火系統(tǒng)技術(shù)標(biāo)準(zhǔn)(正式版)
- (正式版)JBT 7248-2024 閥門用低溫鋼鑄件技術(shù)規(guī)范
- 膽總管結(jié)石伴膽管炎的護理查房
- 水閘閘門運行方案
- 消費型股東招募計劃書
- 二年級上冊豎式計算200題附答案
- 統(tǒng)編版三年級語文下冊 第五單元 大單元教學(xué)設(shè)計
- 申請拘留被執(zhí)行人的文件
評論
0/150
提交評論