Foxtable(狐表)用户栏目专家坐堂 → 递归函数应用——动态菜单生成


  共有8444人关注过本帖树形打印复制链接

主题:递归函数应用——动态菜单生成

帅哥哟,离线,有人找我吗?
yinyb36
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:953 积分:7252 威望:0 精华:0 注册:2011/9/6 13:36:00
  发帖心情 Post By:2016/7/21 7:44:00 [只看该作者]

源码源码源码

 回到顶部
帅哥哟,离线,有人找我吗?
pyh6918
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1128 积分:11035 威望:0 精华:2 注册:2008/9/1 10:45:00
  发帖心情 Post By:2016/7/21 7:59:00 [只看该作者]

期待

 回到顶部
帅哥哟,离线,有人找我吗?
pcxjxjhkw
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2016/7/21 9:28:00 [只看该作者]

支持


 回到顶部
帅哥哟,离线,有人找我吗?
weipeng6999
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:349 积分:3329 威望:0 精华:0 注册:2016/3/8 18:13:00
  发帖心情 Post By:2016/7/21 9:47:00 [只看该作者]

顶起!!!!!1

 回到顶部
帅哥哟,离线,有人找我吗?
黄训良
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1100 积分:8985 威望:0 精华:0 注册:2014/3/15 14:36:00
  发帖心情 Post By:2016/7/21 19:58:00 [只看该作者]

顶上。

 回到顶部
帅哥哟,离线,有人找我吗?
方丈
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:803 积分:10769 威望:0 精华:1 注册:2008/9/2 18:58:00
  发帖心情 Post By:2016/7/22 13:29:00 [只看该作者]

顶上。


 回到顶部
帅哥哟,离线,有人找我吗?
a87918021
  17楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:290 积分:2317 威望:0 精华:0 注册:2013/11/29 16:59:00
  发帖心情 Post By:2016/7/22 14:29:00 [只看该作者]

图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
shanshuizhujian
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:221 积分:2195 威望:0 精华:0 注册:2011/12/14 9:56:00
  发帖心情 Post By:2016/8/18 16:48:00 [只看该作者]

前段时间有点忙,不好意思,我现在把源码贴出来,大师们莫要笑话哦。
'''动态函数应用*********************************************************
Dim pid As String = args(0)
Dim pmenu As object= args(1)
Dim nmenu As object
Dim dt As DataTable = args(2)
Dim drs As List(of DataRow)
drs = DataTables("otb_ModelMenu") .Select("ParentID = '" & pid & "'")
For Each dr As DataRow In drs
    Select Case dr("strMenuCategory")
        Case "RibbonTabs"
            nmenu = new RibbonMenu.Tab(dr("ID"))
            nmenu.text =dr("strMenuCaption")
            RibbonTabs.add(nmenu)
        Case Else
            Select Case dr("strMenuCategory")
                Case "Groups"
                    nmenu = new RibbonMenu.Group(dr("ID"))
                    nmenu.text =dr("strMenuCaption")
                    pmenu.Groups.add(nmenu)
                Case "Separator"
                    nmenu = new RibbonMenu.Separator(dr("ID"))
                    pmenu.Items.add(nmenu)
                Case "LeftItems","RightItems","BottomItems"
                    nmenu = Nothing
                Case Else
                    Select Case dr("strMenuCategory")
                        Case "MenuButton"
                            nmenu = new RibbonMenu.MenuButton(dr("ID"))
                        Case "Button"
                            nmenu = new RibbonMenu.Button(dr("ID"))
                        Case "TextBox"
                            nmenu = new RibbonMenu.TextBox(dr("ID"))
                        Case "DatePicker"
                            nmenu = new RibbonMenu.DatePicker(dr("ID"))
                        Case "NumericBox"
                            nmenu = new RibbonMenu.NumericBox(dr("ID"))
                        Case "TimePicker"
                            nmenu = new RibbonMenu.TimePicker(dr("ID"))
                        Case "NumericBox"
                            nmenu = new RibbonMenu.NumericBox(dr("ID"))
                        Case "ComboBox"
                            nmenu = new RibbonMenu.ComboBox(dr("ID"))
                        Case "Label"
                            nmenu = new RibbonMenu.Label(dr("ID"))
                        Case "CheckBox"
                            nmenu = new RibbonMenu.Checkbox(dr("ID"))
                        Case "ColorPicker"
                            nmenu = new RibbonMenu.ColorPicker(dr("ID"))
                        Case "FontComboBox"
                            nmenu = new RibbonMenu.FontComboBox(dr("ID"))
                        Case "ColorPicker"
                            nmenu = new RibbonMenu.ColorPicker(dr("ID"))
                    End Select
                    '************************************以下考虑程序菜单的特殊性'
                    Dim drs1 As DataRow =  DataTables("otb_ModelMenu").find("ID = '" & pid & "'") '如果父键id类型是一下几种的话就执行下面
                    If drs1 IsNot Nothing Then
                        Select Case drs1("strMenuCategory")
                            Case "LeftItems"
                                nmenu.text =dr("strMenuCaption")
                                nmenu.smallImage = getimage(dr("strMenuImage"))
                                ApplicationMenu.LeftItems.add(nmenu)
                                'nmenu = ApplicationMenu.LeftItems(nmenu)
                            Case "RightItems"
                                nmenu.text =dr("strMenuCaption")
                                nmenu.smallImage = getimage(dr("strMenuImage"))
                                ApplicationMenu.RightItems.add(nmenu)
                                'nmenu = ApplicationMenu.RightItems(nmenu)
                            Case "BottomItems"
                                nmenu.text =dr("strMenuCaption")
                                nmenu.smallImage = getimage(dr("strMenuImage"))
                                ApplicationMenu.BottomItems.add(nmenu)
                                'nmenu = ApplicationMenu.BottomItems(nmenu)
                            Case Else
                                nmenu.text =dr("strMenuCaption")
                                nmenu.smallImage = getimage(dr("strMenuImage"))
                                pmenu.Items.add(nmenu)
                        End Select
                    End If
            End Select
    End Select
    Functions.Execute("funAddMenu1",dr("ID"),nmenu,dt)
Next

[此贴子已经被作者于2016/8/18 16:48:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
shanshuizhujian
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:221 积分:2195 威望:0 精华:0 注册:2011/12/14 9:56:00
  发帖心情 Post By:2016/8/18 16:55:00 [只看该作者]

''应用测试*************************
'Dim mymenu As C1Ribbon.C1Ribbon = GetRibbon() '使用全局函数,是菜单暂停绘制防止闪烁,带来好的体验
'mymenu.BeginUpdate()
'RibbonTabs.Clear
'QAT.Items.Clear
'ConfigBar.Items.Clear
'TopToolBar.Items.clear
'BottomToolBar.Items.clear
'ApplicationMenu.BottomItems.clear
'ApplicationMenu.LeftItems.clear
'ApplicationMenu.RightItems.clear
'
'Dim nmenu As object
'Dim cmd As new SQLCommand
'Dim dt As DataTable
'cmd.C
'cmd.CommandText = "s e l e c t * from {otb_ModelMenu} where strModelName = '系统设置' ORDER BY intSortCode " ’把注释去掉,然后把select字母之间的空格去掉。
'dt = cmd.ExecuteReader '获得本模块的菜单数据'
'For Each dr As DataRow In dt.datarows
    'If dr.IsNull("ParentID") Then
        'Select Case dr("strMenuCategory")
            'Case "RibbonTab"
                'nmenu = Nothing
                'Functions.Execute("funAddMenu1",dr("ID"),nmenu,dt)
            'Case "QAT"
                'nmenu = QAT
                'Functions.Execute("funAddMenu1",dr("ID"),nmenu,dt)
            'Case "ConfigBar"
                'nmenu = ConfigBar
                'Functions.Execute("funAddMenu1",dr("ID"),nmenu,dt)
            'Case "TopToolBar"
                'nmenu = TopToolBar
                'Functions.Execute("funAddMenu1",dr("ID"),nmenu,dt)
            'Case "BottomToolBar"
                'nmenu = BottomToolBar
                'Functions.Execute("funAddMenu1",dr("ID"),nmenu,dt)
            'Case "ApplicationMenu"
                'nmenu = Nothing
                'Functions.Execute("funAddMenu1",dr("ID"),nmenu,dt)
            'Case "ContextMenu"
                'nmenu = Nothing
                'Functions.Execute("funAddMenu1",dr("ID"),nmenu,dt)
        'End Select
    'End If
'Next
'mymenu.EndUpdate()
[此贴子已经被作者于2016/8/18 17:08:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
tongliaozyr
  20楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:648 积分:6060 威望:0 精华:0 注册:2013/10/22 12:15:00
  发帖心情 Post By:2016/8/18 22:22:00 [只看该作者]

顶一顶

 回到顶部
总数 35 上一页 1 2 3 4 下一页