·您的位置: 首页 » 资源教程 » 编程开发 » ASP.NET » 使用递归从数据库读取数据来动态建立菜单

使用递归从数据库读取数据来动态建立菜单

类别: ASP.NET教程  评论数:0 总得分:0
表结构与内容

MenBh            MenText     Bhparent

 

0001             文件         

0002             编辑         

0005             打开          0001

0006             新建          0001

0011             access数据库  0006

0012             VFPDbf      0006

0013             剪切          0002

0014             复制          0002

0015            完全复制       0014

 

 

    

Private m As New MainMenu()

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim conn As New SqlConnection(\"server=localhost;uid=sa;pwd=;database=jiang\")

        Dim cmd As New SqlCommand(\"select * from a_menu \", conn)

        Dim ds As New DataSet()

        Dim sqldpr As New SqlDataAdapter(cmd)

        sqldpr.Fill(ds, \"menu\")

        Me.DataGrid1.DataSource = ds.Tables(\"menu\")

        \'创建关系

        Dim dr As New DataRelation(\"self_menu\", ds.Tables(\"menu\").Columns(\"MenBh\"), ds.Tables(\"menu\").Columns(\"Bhparent\"))

        ds.Relations.Add(dr)

        Dim r1 As DataRow

        \'查找最高的菜单级别,也就是Bhparent列为空的行

        For Each r1 In ds.Tables(\"menu\").Rows

            If r1.IsNull(\"Bhparent\") Then

                addmenuitem(r1, Nothing)

            End If

        Next

        Me.Menu = m \'指定主窗体菜单

    End Sub

    \'递归函数

    Private Sub addmenuitem(ByVal r As DataRow, ByVal item As MenuItem)

        Dim mi As MenuItem

        \'如果是最外层菜单,要直接添加

        If item Is Nothing Then

            mi = m.MenuItems.Add(r.Item(\"MenText\"))

        Else \'如果是下级菜单要在菜单项的上级添加

            mi = item.MenuItems.Add(r.Item(\"MenText\"))

        End If

        Dim r2 As DataRow

        For Each r2 In r.GetChildRows(\"self_menu\")

            addmenuitem(r2, mi)

        Next

    End Sub

\'--------------------------------------------------------一种方法的改进

/////////////////////////////////////////////////////////////////////////////////////

继承自menuitem的类

/////////////////////////////////////////////////////////////////////////////////////

Public Class mymenuitem

Inherits System.Windows.Forms.MenuItem

 

Public Sub New(ByVal s As String, ByVal tag As String)

        MyBase.New()

        Me.Text = s

        m_tag = tag

    End Sub

    Private m_tag As String

    Public Property tag() As String

        Get

            Return m_tag

        End Get

        Set(ByVal Value As String)

            m_tag = Value

        End Set

End Property

  End class

本新闻共2页,当前在第1页  1  2  

本新闻共2页,当前在第1页  1  2  

-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:
纯粹空间 softpure.com
Copyright © 2006-2008 暖阳制作 版权所有
QQ: 15242663 (拒绝闲聊)  Email: faisun@sina.com
 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛   Valid XHTML 1.0 Transitional
百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1