在组织数据的时候就按照数的属性排好啊,页面上依次变成Option即可

解决方案 »

  1.   

    我的表的字段就是这些:
    id int auto_increament
    parentid int//父结点的id
    isleaf boolean//是否为叶节点
    nodename varchar//节点名称
    comments varchar//节点提示
    它是一个开放式的结构,能无限制的增加。
    希望大侠们给写个算法,或是出个什么主意!!
    再次期待!!!!
      

  2.   

    给你段伪代码,自己翻译去
    public java.util.List buildTree(String rootid){
       List result = new ArrayList();
       Element root = findById(rootId);  //这里的Element就表示你表对应的vo
       result.add(root);   //把自己加入到列表第一位
       if(!root.isLeaf()){  //判断是否叶子节点,如果时就不用再深入了
            result.add(buildTree(root.getId()));   //递归加入子节点
       }
       return result;
    }
      

  3.   

    服务端利用递归构造树型数据:
    public List getCustomerList() {
      List orderList = new ArrayList();
      for (int i = 0; i < customerList.size(); i++) {
        if (!orderList.contains(customerList.get(i))) {
          constructCustomerTree(orderList, (Customer)customerList.get(i), customerList);
        }
      }
      return orderList;
    }public void constructCustomerTree(List nodeList, Customer item, List customerList) throws Exception {
      nodeList.add(item);
      Iterator funcIt = customerList.iterator();
      Customer funcItem = null;
      String superiorId = null;
      String itemId = null;
      while (funcIt.hasNext()) {
        funcItem = (Customer)funcIt.next();
        if (funcItem.getCustomer() == null) {
          superiorId = "0";
          break;
        } else {
          superiorId = Tools.trim(funcItem.getCustomer().getId());
        }
        itemId = Tools.trim(item.getId());
        if (superiorId.equals(itemId)) {
          constructCustomerTree(nodeList, funcItem, customerList);
        }
      }
    }
      

  4.   

    遍历的原始list必须是按照树的深排好序的,你也可以先把顶层节点取出来,然后把它们的子节点遍历添加进去