递归菜单简单应用

/// <summary>
/// 系统缓存,存放全局变量
/// </summary>
public static class Caches
{
#region 菜单
private static List<Feature> m_menu = null;
public static List<Feature> AllMenu
{
get
{
if (m_menu.IsNull() || m_menu.Count.Equals(0))
{
m_menu = new List<Feature>();
lock (m_menu)
{
if (m_menu.IsNull() || m_menu.Count.Equals(0))
{
IList<SysMenu> menuList = NhbHelper.GetCurrentSession().CreateCriteria(typeof(SysMenu))
.List<SysMenu>();
GreatMenu(null, m_menu, 0,CBF.WMS.Common.Net.ConvertHelper.IListToList<SysMenu>(menuList));
}
}
}
return m_menu;
}
}

private static void GreatMenu(object parent, List<Feature> table, int level, List<SysMenu> list)
{
Feature feat=null;
List<SysMenu> tmpMenuList;
tmpMenuList = list.FindAll(
delegate(SysMenu menu)
{ return menu.ParentCode ==parent; }
);

//list.FindAll(s => s.ParentCode ==parent);

foreach (SysMenu mdl in tmpMenuList)
{
if (parent == mdl.ParentCode)
{
feat = new Feature();
feat.Level = level;
feat.Id = mdl.Id;
feat.Name = mdl.Name;
feat.State = mdl.State;
feat.Url = mdl.Iconic;
if (!mdl.ParentCode.IsNull())
{
feat.Parent = mdl.ParentCode.Id;
}
feat.Pic = "../Icons/folder.png";
table.Add(feat);
GreatMenu(mdl, table, level + 1, list);
}
}
}

public static void ClearMenu()
{
m_menu = null;
}
#endregion
}

时间: 2024-10-13 04:30:17

递归菜单简单应用的相关文章

treeView和递归的简单运用

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 using System; using System.Collections.Generic; using System.ComponentModel; using System.Da

可以固定的顶部的导航菜单简单实例代码

可以固定的顶部的导航菜单简单实例代码:固定于网页顶部的导航栏效果在当下网站比较流行,所谓的固定于网页的顶部一般来说并不是一直固定于顶部,而是在开始是位于某一个位置,当下拉滚动条使其到达顶部的时候才会固定在顶部,下面通过代码实例介绍一下如何实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" con

jquery,tree无限级树形菜单+简单实用案例

jquery,tree无限级树形菜单+简单实用案例 我在项目中用到产品类别的树形.各种地方都要用. 我就封装起来,方便以后调用. 记录下来,希望给新手们提供帮助.要记得导入jquery.js  tree.js 哦 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri=&quo

无限级菜单简单的设计

策略:数据库就一张表,前端查询出所有的可显示的菜单,在前端进行循环展示. 1,数据库表的设计 CREATE TABLE sys_menu ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(64) NOT NULL, url VARCHAR(255), pid INT NOT NULL DEFAULT 0, isLeaf TINYINT NOT NULL DEFAULT 1 COMMENT '0表示不是叶子,1表示是叶子', status TINYINT

Django第10章: 权限管理(递归菜单树)

权限四表(重点) 用户登录 进入admin后台填充数据; 前端利用form表单登录; 用户输入登录信息后, 若后端认证通过,则缓存当前用户的所有权限信息 # views.py============================================ def login(request): if request.method == 'GET': return render(request, 'login.html') else: username = request.POST.get

右击菜单简单实现

前几天项目验收的时候,提出"右击菜单"的需求.那么右击菜单有什么优点呢?为什么要做成这样?我想用一句:"提高用户体验度"就能够解除大家的疑惑吧.这样用户就能够依据自己的喜好,是点击固定button还是右击,无论通过那个渠道都能够达到目的,这样才干得到用户的青睐. 那么接下来就让我先从一个小的demo入手,体验一把吧! 一.准备工作 想要做的效果: 二.HTML代码 <span style="font-size:18px;"><!

使用postgre数据库实现树形结构表的子-父级迭代查询,通过级联菜单简单举例

前言:开发常用的关系型数据库MySQL,mssql,postgre,Oracle,简单的增删改查的SQL语句都与标准SQL兼容,这个不用讲,那么对于迭代查询(不严格的叫法:递归查询)每种数据库都不一样,对于标准SQL语句支持最好的是mssql和postgre,这个不需多讲,我们只讲讲单表情况下的postgre如何通过迭代查询获取有层级关系的数据. 一.表结构举例 MENU表 ID VARCHAR2(32)     N   sys_guid()    节点idFENXID VARCHAR2(32)

javascript --- 递归的简单理解

递归函数大家都应该比较熟吧?那么,如何在JavaScript中书写一个完美的递归函数呢?且听我娓娓道来. 递归函数 写的时候,查了一下维基百科对递归函数的定义,恕我愚钝,简直太深奥了!所以,我还是简单的说说我对递归函数的理解吧.递归函数,说白了就是在函数内部引用函数自身,最终到给定的递归结束条件时回溯.当然,你也可以不给定结束条件,死了别挂我~(╯﹏╰)~. 简单说就是有两个条件: 1. 在函数内部引用自身. 2. 每个递归函数里必定有一个终止条件. 来个小李子: function test(n

js实现递归菜单无限层

/*动态加载菜单*/ function dynamicMenu(data){ if (userID != "admin"){ //1.清空所有菜单 $("#menuList").empty(); //2.添加用户配置菜单 递归生成 var rootArr = new Array(); $.each( data, function(index, content) { var id = content.id; var name = content.name; var o