`
xiaoer_1982
  • 浏览: 1864318 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

ASP.net 2005 Treeview 无限分类非递归终极解决方案

阅读更多

ASP.net 2005 Treeview 无限分类非递归终极解决方案

这几天在写HRM的时候 这问题搞了我两天,哈哈!开始在使用Google 找了半天都是一堆垃圾,都是使用算法的较多, 后来就去了www.asp.net 找到点启示。

好了废话多说无用。

首先表结构如下 表名 Test

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 233.25pt; HEIGHT: 95.25pt" type="#_x0000_t75"><imagedata src="file:///D:%5CDOCUME~1%5CJIANGJ~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.jpg" o:title="Snap1"></imagedata></shape>

写个存储过程 GetTreeview

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

为了速度缓存DataTable

Public Function GetTreeTable() As DataTable

Dim dt As New DataTable()

dt = HttpContext.Current.Cache("Treeview")

If dt Is Nothing Then

Dim <state w:st="on"><place w:st="on">Conn</place></state>As New SqlConnection

Dim clsConnDatabase As New ConnectionDatabase

<state w:st="on"><place w:st="on">Conn</place></state> = clsConnDatabase.ConnDatabase

Dim Command As New SqlCommand

Command.Connection = <state w:st="on"><place w:st="on">Conn</place></state>

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

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

题外话(突然发现自己老了,26岁了写了快7年的程序了 一直使用VB各种版本, MasmMS宏汇编语言)在VB 6.0 时代 2000 年左右建立了 VB 编程为主的个人主页编程浪子) by Shadow

注:本文转自http://blog.csdn.net/shadowsky/archive/2006/06/18/811461.aspx

分享到:
评论

相关推荐

    Asp.net 2.0 Treeview 无限级无刷新示例

    总的来说,构建ASP.NET 2.0 Treeview的无限级无刷新示例涉及到服务器端的无限级递归加载、客户端的AJAX更新和异步加载策略,需要综合运用ASP.NET、C#、JavaScript和数据库操作等技术。通过实践这个示例,你可以提升...

    ASP.NET-Treeview-递归生成部门树

    在这个"ASP.NET-Treeview-递归生成部门树"的示例中,我们将探讨如何利用TreeView控件结合递归算法来构建一个表示部门结构的树形视图。 首先,我们要理解TreeView的基本概念。TreeView控件是一个可视化组件,它能够...

    ASP.NET 中用TreeView实现树目录的实例

    在ASP.NET中,TreeView控件是一个非常强大的工具,它用于创建和展示层次结构的数据,比如网站导航、文件系统目录或数据库记录。这个实例将指导我们如何利用TreeView来实现一个交互式的树目录。以下是对实现这一功能...

    asp.net TreeView 与 GridView 相结合管理无限极分类很好用

    在标题中提到的“asp.net TreeView 与 GridView 相结合管理无限极分类很好用”,这意味着开发者可能使用TreeView来展示类目层次,用户通过点击TreeNode(树形节点)来展开和选择分类,然后利用GridView展示所选分类...

    asp.net无限级分类 TreeView

    在ASP.NET中,`TreeView`控件是一种强大的工具,用于展示层次结构的数据,例如网站的导航菜单、组织架构或数据库的无限级分类。这个控件能够以树状结构显示数据,用户可以展开和折叠节点,方便地浏览多级关系。在本...

    asp.net中TreeView控件的数据绑定

    在asp.net(C#)中TreeView控件的数据绑定,本例子绑定是目录结构(即是文件夹),按目录等级来分层绑定的,用于目录管理,可自己添加功能代码实现指定文件夹的新建、名称修改,以及文档的上传、转移及各种管理。

    asp.net 利用TreeView控件动态生成无限级树.rar

    这个压缩包“asp.net 利用TreeView控件动态生成无限级树.rar”主要关注如何利用TreeView控件来构建一个能够无限扩展的层级结构。下面将详细阐述相关知识点。 1. TreeView控件简介: TreeView是ASP.NET Web Forms中...

    asp.net生成treeview类

    在asp.net中绑定treeview控件

    ASTreeView 1.3.0(超炫,超酷的Asp.net的Treeview控件)

    ASP.NET TreeView 控件是一种常见的用户界面元素,用于展示层级结构的数据,如目录结构、组织结构或者数据库中的分类数据。在网页开发中,它提供了一种直观的方式,使用户可以浏览和操作多级数据。在本篇中,我们将...

    C# ASP.NET TreeView click 事件

    在ASP.NET开发中,TreeView控件是一个非常有用的组件,它用于呈现层次结构的数据,比如文件系统、组织结构或任何其他可以表示为树形结构的数据。本文将深入探讨如何在C#环境中自定义处理ASP.NET TreeView控件的点击...

    关于ASP.NET中treeview控件用法的程序

    ASP.NET中的TreeView控件是一个强大的工具,用于在Web应用程序中展示层次结构的数据,例如网站导航、文件系统结构或数据库树状关系。这个“TreeView3.15”压缩包文件很可能包含了一个实例,演示了如何在ASP.NET环境...

    asp.net treeview 绑定数据库

    在ASP.NET中,TreeView控件是一个非常有用的工具,它用于以树形结构显示数据,非常适合用来展示层次结构的数据,如组织结构、目录结构或者数据库中的分类信息。在本主题中,我们将深入探讨如何将TreeView控件与...

    [ASP.NET(C#)] - 利用递归遍历文件夹和文件存入TreeView

    "ASP.NET 递归下载treeview" 在 ASP.NET 中,开发者经常需要在网页上展示文件夹和文件的结构,以便用户更方便地浏览和下载文件。为了实现这个功能,我们可以使用递归遍历文件夹和文件,并将其存入 TreeView 中。...

    ASP.NET无限级分类源码示例

    通过研究这个示例,开发者不仅可以学习到如何在ASP.NET中使用TreeView控件,还能了解到如何处理和呈现无限级别的数据结构。这对于提升ASP.NET开发技能,特别是处理复杂数据层次关系的能力大有裨益。同时,这个示例也...

    asp.net中treeview与数据库实现动态连接

    在ASP.NET中,TreeView控件是一个非常有用的工具,它能够以层次结构的形式展示数据,常用于网站导航或数据展示。本篇文章将详细讲解如何在ASP.NET中利用TreeView控件与数据库进行动态连接,以实现数据的动态加载。 ...

    Asp.Net TreeView Checkbox

    在Asp.Net开发中,TreeView控件是一种常用于展示层级数据结构的组件,例如网站的导航菜单或文件系统的目录结构。而将Checkbox与TreeView结合,可以实现用户对多个节点进行多选操作,这对于数据筛选、权限设置等场景...

    ASP.NET TreeView树型菜单操作实例

    要求用asp.net实现一个树形机构,根节点为 福建省,展开+号后为福州市、泉州市、宁德市等9个地市,再展开+号福州市,则现实台江区、鼓楼区等节点。点击节点的名称弹出提示框,提示框的内容为:“你当前选择的节点...

    asp.net Treeview CheckBox 选中

    在ASP.NET中,TreeView控件是一个非常有用的数据呈现工具,常用于展示层次结构的数据,如文件系统、组织结构等。当需要与用户进行更复杂的交互,例如选择多个节点时,可以利用CheckBoxes特性来实现。本文将深入探讨...

Global site tag (gtag.js) - Google Analytics