我现在使用.net mvc开发中,想在页面上动态制作一个TreeView的菜单显示。使用JQuery或者普通的JavaScript实现的都可以。绑定的结点是在数据库中查出来的数据动态绑定上去的。看了一些方法都不全。不知道哪位高手有做过这方面的给个例子看看,非常感谢。有使用比较方便的更好。

解决方案 »

  1.   

    请看: Treeview
      

  2.   


    您好,这个我看过的。不过我想要一个能够冬天绑定数据的。
    这里面的好像数据都是手动写在里面的。
    也许我太笨了,如果你有自己做的Demo能否发一个给我。谢谢。
    [email protected]
      

  3.   

    数据 你可以从库里查询出来封装成一个list 么,数据时没关系的!只要效果能出来就行了!
      

  4.   

    jsp页面:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
    + request.getServerName() + ":" + request.getServerPort()
    + path + "/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>">
    <link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/treeview/jquery.treeview.css" />
         <link rel="stylesheet" href="red-treeview.css" />
    <link rel="stylesheet" href="screen.css" />
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <script type="text/javascript" src="jquery-1.3.2.js"></script>
    <script type="text/javascript" src="jquery.treeview.js"></script>
    <script type="text/javascript" src="jquery.treeview.async.js"></script>
    <script type="text/javascript" src="jquery.cookie.js"></script>
    <script type="text/javascript">
    //$(document).ready(function(){
    $( function(){
    $("#tree").treeview({
    url: "treeViewAction.do"
    })
    });
    </script>
    </head>
    <body>
    This is my JSP page.
    <button id="jquery">jquery</button>
    <ul id="tree" class="filetree">
    <li><span class="folder">Folder 1</span>
    <ul>
    <li><span class="folder">Item 1.1</span>
    <ul>
    <li><span class="file">Item 1.1.1</span></li>
    </ul>
    </li>
    <li><span class="folder">Folder 2</span>
    <ul>
    <li><span class="folder">Subfolder 2.1</span>
    <ul id="folder21">
    <li><span class="file">File 2.1.1</span></li>
    <li><span class="file">File 2.1.2</span></li>
    </ul>
    </li>
    <li><span class="folder">Subfolder 2.2</span>
    <ul>
    <li><span class="file">File 2.2.1</span></li>
    <li><span class="file">File 2.2.2</span></li>
    </ul>
    </li>
    </ul>
    </li>
    <li class="closed"><span class="folder">Folder 3 (closed at start)</span>
    <ul>
    <li><span class="file">File 3.1</span></li>
    </ul>
    </li>
    <li><span class="file">File 4</span></li>
    </ul>
    </li>
    </ul>
    <br>
    </body>
    </html>实现类:package com.yourcompany.service;import java.util.List;import javax.servlet.http.HttpServletRequest;import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;import com.yourcompany.entity.Category;
      
    public class CategoryHelper {   
        private static final Log log = LogFactory.getLog(CategoryHelper.class);   
       /* @Autowired  
        public CategoryManager categoryManager;   
        @Autowired  
        public CategoryJdbcUtil categoryJdbcUtil;*/  
        public CategoryManager categoryManager=new CategoryManager(); 
        public CategoryJdbcUtil categoryJdbcUtil= new CategoryJdbcUtil();
      
        // ========================= 产生jquery.treeview的jsonstring=================//   
        public String generateJTVJsonString(HttpServletRequest request) {   
            log.info("generateJTVJsonString start .....");   
            //HttpServletRequest request = Struts2Utils.getRequest();   
            String id = request.getParameter("root");
            System.out.println(id+"---------id---------");
           log.info("id:"+id);   
            String output = "";   
            if (id == null) {   
                return "";   
            } else if (id.equalsIgnoreCase("source")) {   
                output = generateInitTreeString();   
            } else {   
               output = generateTreeChildNodeString(Long.parseLong(id));   
            }
            log.info("generateJTVJsonString end,return:"+"("+output+")");   
           return output;   
        }   
      
        // 产生子节点jsonstring   
       private String generateTreeChildNodeString(Long categoryId) {   
            StringBuilder jsonString = new StringBuilder();   
            jsonString.append("[");   
     
            List<Category> categorys = categoryManager   
                    .findChildrenCategory(categoryId);  
            System.out.println(categorys.size()+"-----categorys.size()----");
            if (categorys.isEmpty())   
                return "";   
            int i = 0;   
            for (Category category : categorys) {   
                if (i > 0) {   
                    jsonString.append(",");   
              }   
                jsonString.append(toJSONString(category));   
               i++;   
            }   
      
            jsonString.append("]");   
            return jsonString.toString();   
        }   
      
        private String toJSONString(Category category) {   
            StringBuilder sb = new StringBuilder();   
            sb.append(" {");   
            sb.append("  \"text\": \"" + generateLinkString(category) + "\"");   
      
           if (categoryJdbcUtil.hasChild(category)) {   
               sb.append(",  \"id\":\"" + category.getCatId() + "\"");   
               sb.append(",  \"hasChildren\":true");   
          }   
            sb.append(" }");   
            return sb.toString();   
        }   
      
        private String generateLinkString(Category category) {   
           //String link = "<a href='javascript:on_cat_click("+category.getCatId()+"); >" + category.getCatName() + "</a>";   
           String link = category.getCatName();   
           return link;   
       }   
      
        private String generateInitTreeString() {   
            StringBuilder jsonString = new StringBuilder();   
            jsonString.append("[");   
      
           List<Category> categorys = categoryManager.getRoot();   
            int i = 0;   
           for (Category category : categorys) {   
                if (i > 0) {   
                   jsonString.append(",");   
                }   
               jsonString.append(toJSONString(category));   
                i++;   
           }   
     
            jsonString.append("]");   
           return jsonString.toString();   
       }   
       // ==================== 产生jquery.treeview的jsonstring 结束=================//   
    }  
      

  5.   

    能把你哪动态树发给我没,我邮箱[email protected]
      

  6.   

    怎么不给我发呢?
    [email protected]
      

  7.   

    能否也给我一份?[email protected]。谢谢!
      

  8.   

    麻烦给我一份例题,可以吗?  [email protected]