private void AddSubMenu(SinoMenuItem _fmenuitem, List <SinoMenuItem> _menuList, FrmMenuPage _fmp) { SinoMenuFatherFinder _finder = new SinoMenuFatherFinder(_fmenuitem.MenuID); List <SinoMenuItem> _subMenuList = _menuList.FindAll(new Predicate <SinoMenuItem>(_finder.FindByFather)); _subMenuList.Sort(new SinoMenuComparer()); foreach (SinoMenuItem _smi in _subMenuList) { FrmMenuGroup _fmg = new FrmMenuGroup(_smi.MenuID, _smi.MenuTitle, _smi.CanUse); this.AddMenuGroup(_fmp, _fmg); if (_smi.MenuType != "") { MenuTypeBase _mtype = MenuTypeCreator.CreateMenuType(_smi.MenuType); IPluginService pluginService = (IPluginService)application.GetService(typeof(IPluginService)); IPlugin _plugin = pluginService.GetPluginInstance(_mtype.MenuTypePluginName); if (_plugin == null) { RaiseLoadErrord(new CommonEventArgs(string.Format("未找到组菜单定义:{0}", _mtype))); } else { _plugin.Load(_fmg, _smi.MenuParameter); } } else { this.AddSubMenuItem(_smi, _menuList, _fmg); } } }
public List <SinoMenuItem> GetAllMenus(string _postID) { SqlDataReader dr; List <SinoMenuItem> _ret = new List <SinoMenuItem>(); if (_postID != "0") { //string _sql = "zhtj_zzjg2.get_yhmenu_systemid"; string _sql = "zhtj_zzjg2.Get_GWMENU"; SqlParameter[] _param = { new SqlParameter("nGWID", SqlDbType.Decimal), new SqlParameter("nhavemeta", SqlDbType.Decimal), //new SqlParameter("curMENU",SqlDbType.RefCursor,DBNull.Value,ParameterDirection.Output) }; _param[0].Value = decimal.Parse(_postID); _param[1].Value = (decimal)1; dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringProfile, CommandType.StoredProcedure, _sql, _param); } else { string _sql = "zhtj_zzjg2.get_yhmenu_systemid"; SqlParameter[] _param = { new SqlParameter("nyhid", SqlDbType.Decimal), new SqlParameter("nhavemeta", SqlDbType.Decimal), new SqlParameter("strsystemid", SqlDbType.VarChar, 12), //new SqlParameter("curMENU",SqlDbType.RefCursor,DBNull.Value,ParameterDirection.Output) }; _param[0].Value = (decimal)0; _param[1].Value = (decimal)1; _param[2].Value = ConfigFile.SystemID; //dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringProfile, CommandType.StoredProcedure, // _sql, _param); dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringProfile, CommandType.Text, yhmenu_systemId, null); } while (dr.Read()) { SinoMenuItem _mitem = new SinoMenuItem( dr.IsDBNull(0) ? "" : dr.GetDecimal(0).ToString(), dr.IsDBNull(1) ? "" : dr.GetString(1), dr.IsDBNull(2) ? "" : dr.GetString(2), dr.IsDBNull(3) ? "" : dr.GetString(3), dr.IsDBNull(4) ? 0 : Convert.ToInt32(dr.GetDecimal(4)), dr.IsDBNull(5) ? "0" : dr.GetDecimal(5).ToString(), dr.IsDBNull(11) ? false : (dr.GetDecimal(11) > 0), dr.IsDBNull(12) ? 0 : Convert.ToInt32(dr.GetDecimal(12)), dr.IsDBNull(7) ? "-1" : dr.GetDecimal(7).ToString(), dr.IsDBNull(10) ? "" : dr.GetString(10) ); _ret.Add(_mitem); } dr.Close(); return(_ret); }
/// <summary> /// 取子菜单 /// </summary> /// <param name="_menuList"></param> /// <param name="_fatherItem"></param> private static void GetChildMenu(List <SinoMenuItem> _menuList, SinoMenuItem _fatherItem) { var _subMenuList = from _c in _menuList where _c.FatherID == _fatherItem.MenuID orderby _c.DisplayOrder select _c; if (childMenuDict.ContainsKey(_fatherItem.MenuID)) { childMenuDict[_fatherItem.MenuID] = _subMenuList.ToList <SinoMenuItem>(); } else { childMenuDict.Add(_fatherItem.MenuID, _subMenuList.ToList <SinoMenuItem>()); } foreach (SinoMenuItem _smi in _subMenuList) { GetChildMenu(_menuList, _smi); } }
private void AddSubMenuItem(SinoMenuItem _fmenuitem, List <SinoMenuItem> _menuList, FrmMenuGroup _fmg) { SinoMenuFatherFinder _finder = new SinoMenuFatherFinder(_fmenuitem.MenuID); List <SinoMenuItem> _subMenuList = _menuList.FindAll(new Predicate <SinoMenuItem>(_finder.FindByFather)); _subMenuList.Sort(new SinoMenuComparer()); foreach (SinoMenuItem _smi in _subMenuList) { if (_smi.CanUse) { FrmMenuItem _mitem = null; if (_smi.MenuType == "") { _mitem = new FrmMenuItem(_smi.MenuID, _smi.MenuTitle, "", global::SinoSZClientBase.Properties.Resources.foward2, _smi.CanUse, null); } else { #region 类型定义 string[] _typeStrs = _smi.MenuType.Split('.'); if (_typeStrs.Length > 1) { string _pluginName = _typeStrs[0]; string _commandName = _typeStrs[1]; IPluginService pluginService = (IPluginService)application.GetService(typeof(IPluginService)); IPlugin _plugin = pluginService.GetPluginInstance(_pluginName); if (_plugin == null) { RaiseLoadErrord(new CommonEventArgs(string.Format("未找到菜单定义用的插件:{0}", _pluginName))); _mitem = new FrmMenuItem(_smi.MenuID, _smi.MenuTitle, "", global::SinoSZClientBase.Properties.Resources.foward2, _smi.CanUse, null); } else { _mitem = _plugin.GetMenuItem(_commandName, _smi.MenuTitle, _smi.MenuParameter); if (_mitem == null) { RaiseLoadErrord(new CommonEventArgs(string.Format("插件{1}中未找到菜单定义用的:{0}", _commandName, _pluginName))); _mitem = new FrmMenuItem(_smi.MenuID, _smi.MenuTitle, "", global::SinoSZClientBase.Properties.Resources.foward2, _smi.CanUse, null); } else { _mitem.MenuID = _smi.MenuID; } } } #endregion } if (_mitem != null) { MenuDict.Add(_smi.MenuID, _mitem); if (_smi.IconName != "-1") { Image _mIcon = SinoSZResources.GetIcon(_smi.IconName); if (_mIcon != null) { _mitem.MenuIcon = _mIcon; } } this.AddMenuItem(_fmg, _mitem); _mitem.ChildMenus = CreateChildItems(_mitem, _menuList); } } } }