实现一个树型菜单,但是代码用的linq,2005不支持linq,请教大侠们这个代码该怎样改
Framework.BLL.Sys_Model bll = new Framework.BLL.Sys_Model();//实例化BLL类
        List<Framework.Model.Sys_Model> modList = bll.GetModelListByUserPermission(LoginUser.UserID);//得到实体
        StringBuilder sb = new StringBuilder();
        if (modList.Count > 0)
        {
            sb.Append("<ul style='height: 100%' id='navigation'>");
            List<Framework.Model.Sys_Model> parentModList = (from m in modList where (m.ParentID == "" || m.ParentID == null) orderby m.OrderNum select m).ToList();//linq
            foreach (Framework.Model.Sys_Model parentMod in parentModList)  //循环加载父模块
            {
                sb.Append(" <li><a class='title'>"+ parentMod.ModelCName +"</a><ul>");
                List<Framework.Model.Sys_Model> subModList = (from m in modList where m.ParentID == parentMod.ModelID orderby m.OrderNum select m).ToList();//linq                foreach (Framework.Model.Sys_Model subMod in subModList)  //循环加载子模块
                {
                    sb.Append(" <li><a onclick='hc(this)' target='rightFrame' href='"+ subMod.URL +"' title='"+ subMod.ModelCName +"'>");
                    sb.Append("<img alt='' class='icon_space' border='0' src='../images/main/menu2.gif' />" + subMod.ModelCName + "</a></li>");
                }                sb.Append("</ul></li>");
            }
            sb.Append("</ul>");
        }
        ltlUrl.Text = sb.ToString();

解决方案 »

  1.   


    写两个方法咯
    List<Framework.Model.Sys_Model> parentModList = GetParentModListByUserId
    List<Framework.Model.Sys_Model> subModList = GetSubModListByParentId
      

  2.   

    能不能通过递归加载就像treeview那种
      

  3.   


            private void CreateTree(string MenuParentID)
            {
                List<MyReportModel.Sys_Model> modList = bll.GetModelListP(MenuParentID);
                if (modList.Count > 0)
                {
                    sb.Append("<ul style='height: 100%' id='navigation'>");
                    for (int i = 0; i < modList.Count; i++)
                    {
                        sb.Append(" <li><a class='title'>" + modList[0].ModelCName + "</a><ul>");//加载父菜单
                        sb.Append(" <li><a onclick='hc(this)' target='rightFrame' href='" + modList[i].URL + "' title='" + modList[i].ModelCName + "'>");
                        sb.Append("<img alt='' class='icon_space' border='0' src='../images/main/menu2.gif' />" + modList[i].ModelCName + "</a></li>");
                        sb.Append("</ul></li>");
                        CreateTree(modList[i].ModelID);
                    }
                    sb.Append("</ul>");
                }
                ltlUrl.Text = sb.ToString();
            }我用递归写的 但是实现不了树形,请看一下代码有啥问题