用户
 找回密码
 立即注册

2

主题

13

帖子

204

积分

中级会员

Rank: 3Rank: 3

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

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

本帖子中包含更多资源

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

x
使用道具 举报 回复

可以参考smoone中的代码,图片中的红框圈出的代码是添加的二级菜单,
之后通过iconMenuview.ShowDialogMenu方法弹出二级目录

本帖子中包含更多资源

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

x
使用道具 举报 回复 支持 反对
发表于 2019-8-22 10:08:47
Lula.Jin 发表于 2019-8-22 10:03
可以参考smoone中的代码,图片中的红框圈出的代码是添加的二级菜单,
之后通过iconMenuview.ShowDialogMen ...

这个我知道,我按照官网视频上直接显示动态二级是没问题的。
但就是根据身份去判断就不知道了。主要是二级菜单添加的条件是什么,或者说从哪添加。
我现在不是用菜单ID去得到菜单数据了嘛,后面改怎么写。在什么条件下,从哪添加二级。我现在是这个不知道,困惑很久了
使用道具 举报 回复 支持 反对
发表于 2019-8-22 10:47:21
Lula.Jin 发表于 2019-8-22 10:03
可以参考smoone中的代码,图片中的红框圈出的代码是添加的二级菜单,
之后通过iconMenuview.ShowDialogMen ...

刚又重新写了一下,现在是能显示全部的二级项了,但是员工也是全部显示。
使用道具 举报 回复 支持 反对
发表于 2019-8-22 10:48:51
本帖最后由 1073096526 于 2019-8-22 10:50 编辑

这样子是全部显示了,不管管理员还是员工,动态显示还是有问题。到底是哪里不对呀,求解决下呀。或者能按照数据表,现写下嘛

本帖子中包含更多资源

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

x
使用道具 举报 回复 支持 反对
发表于 2019-8-22 10:50:40
Lula.Jin 发表于 2019-8-22 10:03
可以参考smoone中的代码,图片中的红框圈出的代码是添加的二级菜单,
之后通过iconMenuview.ShowDialogMen ...

能根据数据表,现写嘛
使用道具 举报 回复 支持 反对
发表于 2019-8-22 10:52:39
你可以先获取登录账号的员工类型 ,在通过员工类型来获取菜单ID的
使用道具 举报 回复 支持 反对
发表于 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: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 11:08:02
思路就是先获取登录账号的员工类型 ,在通过员工类型来获取菜单ID的,在根据菜单id获取二级子菜单;
至于你的显示不正确就是你数据取的问题,可以打断点看你每次取的数据,你自己的数据库,业务逻辑你应该哪些是正确的数据的
使用道具 举报 回复 支持 反对
12下一页
发新帖
您需要登录后才可以回帖 登录 | 立即注册