ASP.NET 2005 Treeview終極解決方案
更新時(shí)間:2006年09月28日 00:00:00 作者:
這幾天在寫HRM的時(shí)候 這問(wèn)題搞了我兩天,開始在使用Google 找了半天都是一堆垃圾,都是使用算法的較多, 后來(lái)就去了的msdn.yesky.com 找到點(diǎn)啟示。 好了廢話多說(shuō)無(wú)用。
首先表結(jié)構(gòu)如下 表名 Test
寫個(gè)存儲(chǔ)過(guò)程 GetTreeview
這個(gè)不用我說(shuō)了吧下面用到
為了速度緩存DataTable
至于速度我沒(méi)測(cè)試,如果大家有興趣幫忙測(cè)測(cè)。
首先表結(jié)構(gòu)如下 表名 Test
寫個(gè)存儲(chǔ)過(guò)程 GetTreeview
這個(gè)不用我說(shuō)了吧下面用到
為了速度緩存DataTable
Public Function GetTreeTable() As DataTable
Dim dt As New DataTable()
dt = HttpContext.Current.Cache("Treeview")
If dt Is Nothing Then
Dim Conn As New SqlConnection
Dim clsConnDatabase As New ConnectionDatabase
Conn = clsConnDatabase.ConnDatabase
Dim Command As New SqlCommand
Command.Connection = Conn
Command.CommandText = "GetTreeview"
Command.CommandType = CommandType.StoredProcedure
Command.ExecuteNonQuery()
Dim da As New SqlDataAdapter(Command)
dt = New DataTable()
da.Fill(dt)
HttpContext.Current.Cache.Insert("Treeview", dt)
End If
Return dt
End Function
這里是主要阿
Public Sub PopulateNodes(ByVal nodes As TreeNodeCollection, Optional ByVal intParentID As Int32 = 0)
Dim dt As New DataTable()
dt = clsWebForms.GetTreeTable()
Dim strExpression As String
strExpression = "[parentID] = " & intParentID
Dim foundRows() As DataRow
foundRows = dt.Select(strExpression)
Dim I As Integer
For I = 0 To foundRows.GetUpperBound(0)
Dim tn As New TreeNode()
tn.Text = foundRows(I).Item(“TableName”).ToString()
tn.Value = foundRows(I).Item("ID").ToString()
Dim dr() As DataRow
dr = dt.Select("[parentID] = " & tn.Value)
If dr.GetUpperBound(0) > -1 Then
tn.PopulateOnDemand = True
End If
nodes.Add(tn)
Next
End Sub
建立WebForm 放入Treeview
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
PopulateNodes(TreeView1.Nodes, 0)
End If
End Sub
Protected Sub TreeView1_TreeNodePopulate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.TreeNodePopulate
PopulateNodes(e.Node.ChildNodes, e.Node.Value)
End Sub
Dim dt As New DataTable()
dt = HttpContext.Current.Cache("Treeview")
If dt Is Nothing Then
Dim Conn As New SqlConnection
Dim clsConnDatabase As New ConnectionDatabase
Conn = clsConnDatabase.ConnDatabase
Dim Command As New SqlCommand
Command.Connection = Conn
Command.CommandText = "GetTreeview"
Command.CommandType = CommandType.StoredProcedure
Command.ExecuteNonQuery()
Dim da As New SqlDataAdapter(Command)
dt = New DataTable()
da.Fill(dt)
HttpContext.Current.Cache.Insert("Treeview", dt)
End If
Return dt
End Function
這里是主要阿
Public Sub PopulateNodes(ByVal nodes As TreeNodeCollection, Optional ByVal intParentID As Int32 = 0)
Dim dt As New DataTable()
dt = clsWebForms.GetTreeTable()
Dim strExpression As String
strExpression = "[parentID] = " & intParentID
Dim foundRows() As DataRow
foundRows = dt.Select(strExpression)
Dim I As Integer
For I = 0 To foundRows.GetUpperBound(0)
Dim tn As New TreeNode()
tn.Text = foundRows(I).Item(“TableName”).ToString()
tn.Value = foundRows(I).Item("ID").ToString()
Dim dr() As DataRow
dr = dt.Select("[parentID] = " & tn.Value)
If dr.GetUpperBound(0) > -1 Then
tn.PopulateOnDemand = True
End If
nodes.Add(tn)
Next
End Sub
建立WebForm 放入Treeview
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
PopulateNodes(TreeView1.Nodes, 0)
End If
End Sub
Protected Sub TreeView1_TreeNodePopulate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.TreeNodePopulate
PopulateNodes(e.Node.ChildNodes, e.Node.Value)
End Sub
至于速度我沒(méi)測(cè)試,如果大家有興趣幫忙測(cè)測(cè)。
您可能感興趣的文章:
- TreeView 用法(有代碼)(asp.net)
- ASP.NET中基于JQUERY的高性能的TreeView補(bǔ)充
- Jquery.TreeView結(jié)合ASP.Net和數(shù)據(jù)庫(kù)生成菜單導(dǎo)航條
- asp.net 獲取TreeView中第一個(gè)選中的節(jié)點(diǎn)
- Asp.net TreeView來(lái)構(gòu)建用戶選擇輸入的方法 推薦
- Asp.net treeview實(shí)現(xiàn)無(wú)限級(jí)樹實(shí)現(xiàn)代碼
- asp.net treeview checkbox 相關(guān)問(wèn)題
- asp.net TreeView與XML三步生成列表樹
相關(guān)文章
iis中為每個(gè)應(yīng)用程序池單獨(dú)設(shè)置aspnet.config配置文件
ASP.NET2.0之后的版本就在各Framework的根目錄下提供了一個(gè)aspnet.config文件,這個(gè)文件用來(lái)配置全局的一些信息,但是一直以來(lái)我們都沒(méi)有怎么用過(guò)2011-12-12解析GridView自帶分頁(yè)及與DropDownList結(jié)合使用
本文主要介紹了GridView自帶的分頁(yè)功能的實(shí)現(xiàn)方法。具有一定的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-12Visual?Studio?2022常見(jiàn)的報(bào)錯(cuò)以及處理方案圖文詳解
許多用戶在使用Visual Studio的過(guò)程中常會(huì)遇到各種問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Visual?Studio?2022常見(jiàn)的報(bào)錯(cuò)以及處理方案的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04一個(gè)基于Asp.Net MVC的權(quán)限方案
最近這段時(shí)間博客園有幾位同學(xué)在探討通用的權(quán)限方案,偶閑來(lái)無(wú)事,也來(lái)湊湊熱鬧,下面簡(jiǎn)單說(shuō)一下我的簡(jiǎn)單解決方案,基于AOP的。由于使用了Asp.Net MVC 開發(fā),可能需要先對(duì)MVC有些了解,思路都是差不多的。2010-02-02asp.net SAF 中緩存服務(wù)的實(shí)現(xiàn)
對(duì)緩存的興趣源于張子陽(yáng)寫的一篇文章《SAF 中緩存服務(wù)的實(shí)現(xiàn)》中的一個(gè)例子:2008-08-08MVC使用T4模板生成其他類的具體實(shí)現(xiàn)學(xué)習(xí)筆記2
這篇文章主要為大家詳細(xì)介紹了MVC使用T4模板生成其他類的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09.Net?Core和RabbitMQ限制循環(huán)消費(fèi)的方法
當(dāng)消費(fèi)者端接收消息處理業(yè)務(wù)時(shí),如果出現(xiàn)異?;蚴蔷苁障⑾⒂肿兏鼮榈却哆f再次推送給消費(fèi)者,這樣一來(lái),則形成循環(huán)的條件,這篇文章主要介紹了.Net?Core和RabbitMQ限制循環(huán)消費(fèi)的方法,需要的朋友可以參考下2022-10-10