zoukankan      html  css  js  c++  java
  • 多级导航菜单 递归

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication3
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            Model1 db = new Model1();
            public IEnumerable<Category> Categories { get; set; }
            protected void Page_Load(object sender, EventArgs e)
            {
                Categories = db.Category;
            }
            protected string RenderCategory(int parendId)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("<ul>");
                foreach (var item in Categories)
                {
                    if (item.ParentId == parendId)
                    {
                        sb.AppendFormat("<li><a>{0}</a>", item.Name);
                        sb.Append(RenderCategory(item.Id));
                        sb.Append("</li>");
    
                    }
                }
                sb.Append("</ul>");
                return sb.ToString();
            }
        }
    }

    前端

      <%=RenderCategory(0) %>

    委托的方法

    前端

    <%
        int count = 0;
        RenderCategory = parentId =>
        { 
    %>
    <ul <%= parentId==0?"id="categories" class="dropdown-menu"":"class="sub-item"" %>>
        <% 
            foreach (var item in Categories)
            {
                if (item.ParentId == parentId)
                {
                    // 有子类
        %>
        <li>
            <a href="<%=UrlHelper.CategoryUrl(item.Id)%>"><%if (parentId == 0)
                                                            {%><i class="icon-main icon-<%=count++ %>"></i><%}%><%= item.Name %></a>
            <% RenderCategory(item.Id); %>
        </li>
        <%
                }
            }
        %>
    </ul>
    <%
        }; 
    %>
    <% RenderCategory(0); %>

    后端比之前的方法 多了个    public Action<int> RenderCategory { get; set; } 属性

  • 相关阅读:
    小心使用宏
    常见文件、目录、路径操作函数
    链表法页框的分配和去配
    获取调试符号文件
    Visual C++ Runtime Error 调试
    HEAP: Free Heap block XXXX modified at XXXX after it was freed
    磁盘操作 API
    【转】浅谈大型网站动态应用系统架构 Mr
    jQuery1.3.1 Tab选项卡 Mr
    spring依赖注入思想 Mr
  • 原文地址:https://www.cnblogs.com/crazyair/p/4439519.html
Copyright © 2011-2022 走看看