asp.net2.0 treeview控件用数据表做为数据源实现n级动态菜单

转载 2007年09月15日 16:55:00

asp.net2.0 treeview控件用数据表做为数据源实现n级动态菜单

    最近做个产品展示网站,本来打算treeview和menu控件数据源用sitemap来实现,但是发现新增产品信息的发布页需要有个dropdownlist来读取原有的菜单分类,想不出ddl和sitemap如何关联,所以还是改用数据库做为数据源了,参考了网上一些资料,终于实现treeview的n级动态菜单,写下来做个记录。

写一个递归函数。

vb代码:
程序代码 程序代码

Public Sub PopulateNodes(ByVal nodes As TreeNodeCollection, Optional ByVal intParentID As Int32 = 0)
        Dim showmenu As New ClassLibrary.Jkdata.JkDataBasic ‘创建一个新的类对象
        Dim dt As New DataTable()
        dt = showmenu.GetProduct_Class  ‘获得业务层返回的datatable
        Dim strExpression As String
        strExpression = "[UpID] = " & intParentID
        Dim foundRows() As DataRow
        foundRows = dt.Select(strExpression)
        Dim I As Integer
        Dim PassID As Integer
        For I = 0 To foundRows.GetUpperBound(0)
            Dim tn As New TreeNode()
            tn.Text = foundRows(I).Item("ClassName").ToString()
            tn.Value = foundRows(I).Item("ID").ToString()
            If foundRows(I).Item("UpID") = 0 Then
                tn.NavigateUrl = foundRows(I).Item("Url").ToString‘父分类的页面连接
            Else
                PassID = Convert.ToInt32(foundRows(I).Item("ID"))
                tn.NavigateUrl = foundRows(I).Item("Url") + "?classid=" + PassID.ToString ‘子分类的页面连接含参数传递

            End If

            Dim dr() As DataRow
            dr = dt.Select("[UpID] = " & tn.Value)
            If dr.GetUpperBound(0) > -1 Then
                tn.PopulateOnDemand = True
            End If
            nodes.Add(tn)
        Next
    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

Page_Load事件中调用函数绑定数据:
程序代码 程序代码

    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


aspx页面:
程序代码 程序代码

         <asp:TreeView ID="TreeView1" runat="server" >
         </asp:TreeView>


数据库字段:

ID                自动编号  
UpID            数字
ClassName  文本
Url               文本

最后效果图:




 注:本文转自http://www.morock.net/blog/article.asp?id=76

VB用一张数据表和TreeView控件生成无限级目录树

      之前想弄一个图片管理系统,但树形控件从未接触过,网上找到的资料也不适合自己的需要,现在无聊,就写一个用数据库建立树形目录的文章,第一次写技术文章,可能很烂,希望大家给点意见或建议!    ...
  • bllqbz
  • bllqbz
  • 2009年07月30日 13:37
  • 3672

利用TreeView控件动态生成无限级树

利用TreeView控件动态生成无限级树 项目需要,有一个树形菜单需要动态生成,联想到TreeView控件,决定用TreeView来实现首先注意到了TreeView控件有一个属性TreeNodeSrc...
  • loveangela
  • loveangela
  • 2006年08月09日 11:37
  • 854

利用TreeView控件 从数据库中动态载入数据

//*************************  aspx  *************************//               AutoPostBack="True">   ...
  • hqt
  • hqt
  • 2005年04月18日 13:05
  • 1678

TreeView控件绑定多个数据库表

 一.创建方法    ///         /// 填充数据        ///         /// 绑定数据        /// 表名        /// SQL查寻语句参数      ...
  • zhanghefu
  • zhanghefu
  • 2006年11月24日 15:42
  • 2619

自定义控件---动态无限级生成 级联comboBox 和 treeView

开始 -〉新建 -〉新建项目 -〉“Windows窗体控件库” 名称栏 里 改为: myControl1 贴上下面的代码: using System; using System.Collectio...
  • resigner
  • resigner
  • 2014年02月24日 13:49
  • 1707

TreeView控件递归实现树形菜单

  DataSet dataSet = new DataSet();SqlDataAdapter sqlDataAdap
  • JAVA0317
  • JAVA0317
  • 2011年06月13日 11:04
  • 1126

在ASP.NET中,使用XML数据源动态更新TreeView

TreeView显示树形结构的数据。XML是以树结构组织数据的。用XML来表示数据,用TreeView来显示是非常自然的。这里,以一个具体的页面来说明。页面中,使用了TreeView1和XmlData...
  • yanwei100
  • yanwei100
  • 2007年06月04日 13:49
  • 1640

c# winform TreeView控件中实现拖拽的功能

    曾经做过一个Windows Form,需要在TreeView空间中实现拖拽的功能,首先我想介绍一下Windows Form中的TreeView控件:使用 Windows 窗体 TreeView...
  • mzoy
  • mzoy
  • 2007年08月27日 10:50
  • 9104

使用TreeView实现无限级扩展节点(原创)

功能实现要求:操作环境vb.net和oracle9i 由于数据量很大,所以不能利用rs结果集一次读出,在往treeview节点上填充。需要填充树型节点的字段内数据形式为以"."分割如:01   01....
  • yun15291li
  • yun15291li
  • 2005年03月25日 23:49
  • 995

TreeView实现主菜单功能

TreeView实现主菜单功能     软件在菜单MenuItem中,设置了软件的各项功能,以及启动相应模块。为了加大软件的灵活性,我们还可以将主菜单的项目,转变为TreeView,通过点击Tre...
  • lyhoo163
  • lyhoo163
  • 2015年01月03日 14:25
  • 2835
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net2.0 treeview控件用数据表做为数据源实现n级动态菜单
举报原因:
原因补充:

(最多只允许输入30个字)