用户
 找回密码
 立即注册

2

主题

13

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
发表于 2019-8-21 18:14:22
本帖最后由 1073096526 于 2019-8-22 09:58 编辑

怎么根据身份实现动态的Iconmenuview的二级菜单呢。我根据身份得到对应菜单ID DataTable表,在循环每行用ID去找菜单数据,然后该怎么写呢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享至 : QQ空间
0 人收藏
使用道具 举报 回复
发表于 2021-8-23 10:35:26
请问在VB中使用MenuGroupDict应该怎么写?我写的出现这个提示,应该怎么处理?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用道具 举报 回复 支持 反对
发表于 2019-8-22 14:48:51
1073096526 发表于 2019-8-22 14:46
对啊,我也是这样写的。现在就是二级是能够实现了,但是管理员还是员工都是全部显示了,没有动态变化 ...

那你觉得你思路没错就打断点,看你每次从数据库中取的值是否正确?
使用道具 举报 回复 支持 反对
发表于 2019-8-22 14:46:24
Lula.Jin 发表于 2019-8-22 14:36
根据你的图片,在第一张表更具UserID获取到RoleID,
在第二张表中根据第一张表的RoleID和第二张表的RM R ...

对啊,我也是这样写的。现在就是二级是能够实现了,但是管理员还是员工都是全部显示了,没有动态变化
使用道具 举报 回复 支持 反对
发表于 2019-8-22 14:36:49
1073096526 发表于 2019-8-22 12:32
那怎么根据菜单id获取二级子菜单,这也就是问题了呀。我数据库也是按照One那样弄的 ...


根据你的图片,在第一张表更具UserID获取到RoleID,
在第二张表中根据第一张表的RoleID和第二张表的RM RoleID  ,获取RM MenuID,
在第三张表通过第二张表查到的RM MenuID   和第三章表的M ParentID   获取到子菜单

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用道具 举报 回复 支持 反对
发表于 2019-8-22 12:32:45
Lula.Jin 发表于 2019-8-22 11:08
思路就是先获取登录账号的员工类型 ,在通过员工类型来获取菜单ID的,在根据菜单id获取二级子菜单;
至于你 ...

那怎么根据菜单id获取二级子菜单,这也就是问题了呀。我数据库也是按照One那样弄的
使用道具 举报 回复 支持 反对
发表于 2019-8-22 11:08:02
思路就是先获取登录账号的员工类型 ,在通过员工类型来获取菜单ID的,在根据菜单id获取二级子菜单;
至于你的显示不正确就是你数据取的问题,可以打断点看你每次取的数据,你自己的数据库,业务逻辑你应该哪些是正确的数据的
使用道具 举报 回复 支持 反对
发表于 2019-8-22 10:59:33
Lula.Jin 发表于 2019-8-22 10:52
你可以先获取登录账号的员工类型 ,在通过员工类型来获取菜单ID的

DataTable mt = user.GetMenuID(Client.Session["Roler"].ToString());//根据身份得到菜单ID
                       foreach (DataRow data in mt.Rows)
                        {
                            string id = data["RM_MenuID"].ToString();
                            DataTable da = user.GetDataBy(id);//用菜单ID找菜单数据
                            IconMenuViewGroup songrp = new IconMenuViewGroup();//二级菜单
                            foreach(DataRow dd in da.Rows)
                            {
                                DataTable Son = user.GetMPID(dd["M_MenuID"].ToString());//用父ID得到菜单数据
                                foreach (DataRow row in Son.Rows)
                                {
                                    if (row["M_ParentID"].ToString()== dr["M_MenuID"].ToString())
                                    {
                                        songrp.Items.Add(new IconMenuViewItem(row["M_MenuID"].ToString(), row["M_Portrait"].ToString(), row["M_Description"].ToString()));
                                        if (MenuGroupDict.ContainsKey(dr["M_MenuID"].ToString()) == false)
                                        {
                                            MenuGroupDict.Add(dr["M_MenuID"].ToString(), songrp);
                                        }
                                    }
                                   
                                }
                            }

                        }
使用道具 举报 回复 支持 反对
发表于 2019-8-22 10:57:13
Lula.Jin 发表于 2019-8-22 10:52
你可以先获取登录账号的员工类型 ,在通过员工类型来获取菜单ID的

对,这我都已经写了。然后呢,或者能说下具体思路嘛。
我是这样子的,根据类型得到对应的ID表,然后循环,用每个ID去找菜单数据。得到对应DataTable表
然后再循环每行,用ID代表父ID得到对于数据表
然后循环每行,当父ID等于一级菜单ID。添加二级菜单
这样有错误嘛,
使用道具 举报 回复 支持 反对
发表于 2019-8-22 10:52:39
你可以先获取登录账号的员工类型 ,在通过员工类型来获取菜单ID的
使用道具 举报 回复 支持 反对
12下一页
发新帖
您需要登录后才可以回帖 登录 | 立即注册