asp.net 2.0 中递归树的实现

asp.net|递归

HTML页面:

 

--------------------------------------------------------------------------------

<%...@ Page Language="VB" AutoEventWireup="false" CodeFile="TreeView.aspx.vb" Inherits="TreeView" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
    <BASE target="main">
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TreeView ID="TreeView1" runat="server" ExpandDepth="1" Font-Size="9pt" AutoGenerateDataBindings="False" EnableTheming="True" NodeWrap="True" ShowLines="True" Target="_blank">
        </asp:TreeView>
   
    </div>
    </form>
</body>
</html>
 后台CS代码:

--------------------------------------------------------------------------------

Imports System.Web
Imports System.Data.SqlClient
Imports System.Data

Partial Class TreeViewClass TreeView
    Inherits System.Web.UI.Page

    Dim ds As DataSet = New System.Data.DataSet()

    Protected Sub Page_Load()Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            Dim sqlstr As String = "select a.*,T32003.T3200303 as orderProgramID from(select 项目代码 as nodeID,项目名称 as nodeName,项目名称 as parentID from acf_v_lefttree_Admin where 项目代码<>' ' and 项目代码 is not null group by 项目代码,项目名称 union all select 系统代码 as nodeID,系统名称 as nodeName,项目代码 as parentID from acf_v_lefttree_Admin where 系统代码<>' ' and 系统代码 is not null group by 项目代码,系统代码,系统名称  union all select 子系统代码 as nodeID,子系统名称 as nodeName,系统代码 as parentID from acf_v_lefttree_Admin where 子系统代码<>' ' and 子系统代码 is not null group by 系统代码,子系统代码,子系统名称  union all select 程式代码 as nodeID,程式名称 as nodeName,子系统代码 as parentID from acf_v_lefttree_Admin where  程式代码<>' ' and 程式代码 is not null group by 子系统代码,程式代码,程式名称 ) a left outer join T32003 on a.nodeID = T32003.T3200301"
            Dim conn As SqlConnection = New SqlConnection("server=(local);database=acfv3;uid=sa;pwd=888888")
            Dim sqlada As SqlDataAdapter = New SqlDataAdapter(sqlstr, conn)
            sqlada.Fill(ds, "TreeTb")
            createtree(TreeView1.Nodes, "我的ACF")

        End If
    End Sub

    Private Sub createtree()Sub createtree(ByVal TreeVwNds As TreeNodeCollection, ByVal strCurrentID As String)
        Dim datviw As New DataView
        Dim datrow As DataRowView
        Dim TreeVwNode As TreeNode
        Dim currentId As String
        datviw.Table = ds.Tables("TreeTb")
        datviw.Sort = "orderProgramID"
        Try
            datviw.RowFilter = " parentID ='" & strCurrentID & "'"
            If datviw.Count > 0 Then
                For Each datrow In datviw
                    TreeVwNode = New TreeNode
                    TreeVwNode.Value = datrow("nodeID")
                    currentId = datrow("nodeID")
                    TreeVwNds.Add(TreeVwNode)
                    TreeVwNode.Text = Trim(datrow("nodeName"))
                    TreeVwNode.Target = "_blank"
                    Dim i As Integer = TreeVwNds.Count
                    createtree(TreeVwNds(TreeVwNds.Count - 1).ChildNodes, currentId)
                Next
            End If
        Catch ex As Exception
            Response.Write(ex.ToString)

        End Try

    End Sub
End Class

时间: 2024-09-19 08:17:37

asp.net 2.0 中递归树的实现的相关文章

理解并扩展 ASP.NET 2.0 中的站点导航系统

asp.net|导航|站点 摘要:ASP.NET 2.0 站点导航系统构建于一个功能强大.灵活的体系结构之上,设计这样的体系结构是为了使其具有可扩展性.本文探究站点提供程序的体系结构并提供一个示例提供程序,该提供程序将文件系统公开为站点导航的数据源,从而替代了标准的 Web.sitemap XML 文件. 简介 大多数 web 站点采用可视化导航的某种形式来帮助用户轻松地浏览站点,以及查找他们所需的信息和 Web 页.尽管不同站点之间的感观效果千差万别,但是通常会使用相同的基本元素 - 以导航栏

在ASP.NET 2.0中建立站点导航层次(1)

站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息. 站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节.你可以使用API来编程访问应用程序的导航节点. 导航控件--导航控件为页面之间的导航提供了通用的UI,例如树视图.菜单和breadcrum

ASP.NET 2.0中动态修改页面标题

asp.net|动态|页面 在老外的站上看到解决的好方法,故简单编译之:在一个asp.net 的应用中,经常要动态修改页面的标题,一个典型的例子就是,在一个页面导航的控件中,希望用户点选哪一个连接,在页面的title里就显示相关的内容,举个例子,比如一个网站,有如下的网站架构:有图书分类,下面再有中国图书,外国图书分类,则一般可以用树形或者asp.net 2.0的新增加的导航栏控件(sitemap),来实现,比如 图书--->中国图书;图书---->外国图书等,而如果这个时候,能在页面的<

技巧:在ASP.NET 2.0中建立站点导航层次

asp.net|导航|技巧|站点 站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息. 站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节.你可以使用API来编程访问应用程序的导航节点. 导航控件--导航控件为页面之间的导航提供了通用的UI,例

ASP.NET 2.0中层次数据的处理

asp.net|数据 数据源控件可以同时暴露平面表格式的或层次的数据.前面演示的SqlDataSource和ObjectDataSource控件都是平面表格式的数据源控件.ASP.NET 2.0还包含两个层次数据源控件:用于连接XML文件的XmlDataSource和用于连接站点导航数据的SiteMapDataSource.这一部分将介绍这些控件的使用技术. TreeView和Menu控件 数据绑定控件与数据源控件类似,也可以是层次的.表格式数据绑定控件显示数据列表或表格,层次数据绑定控件能够用

在ASP.NET 2.0中建立站点导航层次

asp.net|站点 站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息. 站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节.你可以使用API来编程访问应用程序的导航节点. 导航控件--导航控件为页面之间的导航提供了通用的UI,例如树视图.菜

asp.net 2.0中TREEVIEW中动态增加结点

asp.net|treeview|动态 在asp.net 2.0中,要动态从数据库中取出内容,动态增加结点,其实不难,比如以SQL SERVER 2000的PUBS数据库为例子,要以树型列表方式,取出作者,做为根结点,然后取出每位作者写过什么书,作为子结点,可以这样 <%@ Page Language="C#"%><%@ Import Namespace="System.Data"%><%@ Import Namespace="

在ASP.NET 2.0中实现数据的绑定

ASP.NET的第一个版本就已经建立了一组新的数据库绑定控件.有了这些控件 的支持,数据的可视化和编辑就简单多了,其中一个最重要的控件就是DataGrid 控件.但是这个控件也有很多缺点.它为数据的排序,分页和编辑提供了一些内 置的功能,但必须手动实现. 而ASP.NET 2.0中采用了一种新的方式来解决以前版本的诸多问题, 并且提供了标准的功能.现在可以对任何数据源进行排序,分页和编辑----在大 多数情况下不需要输入任何代码.由于几乎所有的动态WEB程序都要考虑到与数据库的交互,幸运的是在A

抢先试用ASP.NET 2.0中的新型安全控件

asp.net|安全|控件 一. 引言 与ASP.NET 2.0一同上市的有几个新的安全控件-它们位于工具的Login选项卡中(见图1)-这些控件大大简化了Web开发人员的工作.通过使用这些新的安全控件,现在你可以执行例如用户登录.注册.口令改变等的任务:而且,为此做出的努力仅是拖放相应的控件到你的Web表单上去.在本文中,我将向你展示怎样使用这些新控件来实现用户认证. 首先,让我们探索一下LoginView.LoginStatus和LoginName三个控件的使用.首先,让我们使用Visual