Menu控件的使用

 

我是用的vb语法写的,大体意思一样。
1.如果你不用DataSource,手动定义是这样的:
Dim parntItem, nodeItem as MenuItem
parntItem = new MenuItem("firstMenu","firstMenu") //显示和value,我们一般都设置一样.
nodeItem = new MenuItem("secondMenu","secondMenu") //同上

//把子节点加入父节点
parntItem.ChildItems.Add(nodeItem)
...可以继续这样无限加

最后把这个父节点加入到Menu控件中
Me.menu.Items.Add(parntItem)

2.下面写一个在vb.net中的一个例子:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
   Dim ds as DataSet = searchMessage() //调用一个方法得到一个DataSet
   Dim dt_type, dt_sub_type As DataTable //创建一个父节点和子节点DataTable
   Dim dv As DataView
   dv = ds.Tables(0).DefaultView()
  
   dt_type = dv.ToTable(True, "type") //返回只有父节点的DataTable
   dt_sub_type = dv.ToTable(True, "type", "subtype") //返回只有父节点和子节点的DataTable
  
   Dim subrow() As DataRow
   Dim parntItem, parntItem As MenuItem
   For Each oRow As DataRow In dt_type.Rows
    parntItem = New MenuItem(oRow("type"), oRow("type"))
    subrow = dt_sub_type.Select(String.Format("type='{0}'", oRow.Item("type")))
    For i As Integer = 0 To subrow.Length - 1
     nodeItem = New MenuItem(subrow(i)("subtype"), subrow(i)("subtype"))
     parntItem.ChildItems.Add(nodeItem)
    Next
    parntItem.Selectable = False   //父节点不可以选
    Me.menu.Items.Add(parntItem)   //加入到Menu控件中
   Next
  
  
   //如果子节点的个数大于0.默认选中
   If dt_sub_type.Rows.Count > 0 Then
    bindData(dt_sub_type.Rows(0).Item("type"), dt_sub_type.Rows(0).Item("subtype"))
   End If
End Sub


Private Sub bindData(ByVal type As String, ByVal sub_type As String)
   Dim dv As DataView
   dv = ds.Tables(0).DefaultView()
   dv.RowFilter = String.Format("type = '{0}' and subtype='{1}'", type, subtype)
   //这是给GridView赋值DataSource
   gvSearch.DataSource = dv
   gvSearch.DataBind()
End Sub

 

最后把控件的MenuItemClick事件写上
Protected Sub mCategories_MenuItemClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MenuEventArgs) Handles mCategories.MenuItemClick
      bindData(e.Item.Parent.Value, e.Item.Value)
      //意思是 获得当前你点击的节点的父节点   和 当前节点   给bindData方法,绑定数据源
End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值