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

翻译|其它|编辑:郝浩|2007-09-19 10:25:40.000|阅读 952 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

最近做个产品展示网站,本来打算  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              
文本

最后效果图:


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:csdn

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP