手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >ASP.NET 2005 Treeview终极解决方案
ASP.NET 2005 Treeview终极解决方案
摘要:这几天在写HRM的时候这问题搞了我两天,开始在使用Google找了半天都是一堆垃圾,都是使用算法的较多,后来就去了的msdn.yesky.c...

这几天在写HRM的时候 这问题搞了我两天,开始在使用Google 找了半天都是一堆垃圾,都是使用算法的较多, 后来就去了的msdn.yesky.com 找到点启示。 好了废话多说无用。

首先表结构如下 表名 Test

按此在新窗口浏览图片

写个存储过程 GetTreeview

这个不用我说了吧下面用到

为了速度缓存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

至于速度我没测试,如果大家有兴趣帮忙测测。

【ASP.NET 2005 Treeview终极解决方案】相关文章:

WEB上调用HttpWebRequest奇怪问题的解决方法

asp.net 2.0多语言网站解决方法

ASP.NET 保留文件夹详解

ASP.NET实用代码片段

ASP.NET中TreeView用法

ASP.NET 用户多次登录的解决方法

调试ASP.NET应用程序的方法和技巧

asp.net下url传递中文的解决方案

Linq to SQL Delete时遇到问题的解决方法

ASP.NET实现推送文件到浏览器的方法

精品推荐
分类导航