自学Web开发第十六天-基于VB和ASP.NET,深入研究 Menu 控件,从数据库动态添加菜单节点

自学Web开发第十六天-基于VB和ASP.NET,深入研究 Menu 控件,从数据库动态加载菜单节点


之前在研究导航的时候粗略研究了一下 Menu 控件,该控件直接绑定 SiteMapDataSource 控件,从 Web.sitemap 加载导航信息。这种方法十分简单,但是不够灵活。所以这里深入研究下从数据库动态加载菜单节点信息。

菜单的结构

整个菜单由一级菜单、二级菜单、三级菜单等各级节点组成。在站点地图中生成的菜单是有个根节点的,而动态添加节点就不需要根节点,直接添加即可。

各级菜单节点均是 MenuItem 对象,只要实例化后,添加到各级菜单上就行。 MenuItem 对象的重要属性如下:

  • Enbabled : 启用菜单项
  • NavigateUrl :点击菜单项跳转的地址
  • Text :菜单项显示的文本
  • Value :菜单项的值
  • ToolTip : 鼠标放到菜单项上显示的提示
  • Selectable :是否可以选择菜单项(即点击菜单项是否跳转页面)

需注意的是,动态添加的菜单项各节点是否显示也收到 Menu 控件的 MaximunDynamicDisplayLevels 属性影响。

一级菜单节点的添加

一级菜单节点直接在控件上添加,创建 MenuItem 对象,然后直接添加到 Menu 对象的 Items 成员里就行。

        Dim item As New MenuItem With {
   
            .NavigateUrl = "",
            .Value = "001",
            .Text = "测试页1",
            .ToolTip = "测试1的提示"
            .Selectable = False
        }
        Menu.Items.Add(item)

二级至多级菜单节点的添加

和一级菜单节点的添加不同的是,从二级菜单节点开始,添加 MenuItem 对象要在父节点的 ChildItems 成员里。

        Dim item As New MenuItem With {
   
            .NavigateUrl = "",
            .Value = "001",
            .Text = "测试页1",
            .ToolTip = "测试1的提示"
            .Selectable = False
        }
        Menu.Items.Add(item)
      	Dim child As New MenuItem With {
   
            .Text = "测试子节点1",
            .Value = "002",
            .Selectable = False
        }
        item.ChildItems.Add(child)
        ' 或使用 Menu.Items(0).ChildItems.Add(child) 来添加

使用数据库添加菜单节点

这里假设数据库里获取了一个数据表 table ,表结构为 id / text / pa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值