分销商模块之分销商树的原理及div树的形成

来源:互联网 发布:中国网络三剑客 编辑:程序博客网 时间:2024/04/30 23:17

原理:查到返回的都是字符串,用递归的方法去读取.

开发的步骤:
第一步:先把分销商的信息先全部以字符串的方式输出来即可,不用去管其他的层次感.
第二步:加入层次感,比较像树了.看你递归调了几次了,传入的level即可控制.
第三步:加入加减号,如果是叶子节点前面就加入减号,非叶子节点前面就加入一个加号.
div树:控制三个img1,im1,下面的那个div,控制这三个的事件即可.
第四步:采用div生成树形结构.每个节点之前都有个div,每一个都有div的结束

 


// //第一步:先把分销商信息从数据库里读出来,把它先显示出来,而不加任何层次的东西
// private void readClientTree(Connection conn,int id,int level)throws SQLException{
//  String sql="select * from t_client where pid=?";
//  PreparedStatement pstmt=null;
//  ResultSet rs=null;
//  try{
//   pstmt=conn.prepareStatement(sql);
//   pstmt.setInt(1, id);
//   rs=pstmt.executeQuery();
//   while(rs.next()){
//    //String clientName=rs.getString("name");
//    sbHtml.append(rs.getString("name"));
//    if("N".equals(rs.getString("is_leaf"))){
//     readClientTree(conn,rs.getInt("id"),level);
//    }
//   }
//  }finally{
//   DbUtil.close(rs);
//   DbUtil.close(pstmt);
//  }
// }
 
// //第二步:加入层次感,比较像树了.看你递归调了几次了,传入的level即可控制.
// private void readClientTree(Connection conn,int id,int level)throws SQLException{
//  String sql="select * from t_client where pid=?";
//  PreparedStatement pstmt=null;
//  ResultSet rs=null;
//  try{
//   pstmt=conn.prepareStatement(sql);
//   pstmt.setInt(1, id);
//   rs=pstmt.executeQuery();
//   while(rs.next()){
//    //String clientName=rs.getString("name");
//    for(int i=0;i<level;i++){
//     sbHtml.append("&nbsp;&nbsp;&nbsp;");
//    }
//    sbHtml.append(rs.getString("name")).append("<br/>");
//    if("N".equals(rs.getString("is_leaf"))){
//     readClientTree(conn,rs.getInt("id"),level+1);
//    }
//   }
//  }finally{
//   DbUtil.close(rs);
//   DbUtil.close(pstmt);
//  }
// }
// //第三步:加入加减号,如果是叶子节点前面就加入减号,非叶子节点前面就加入一个加号.
// private void readClientTree(Connection conn,int id,int level)throws SQLException{
//  String sql="select * from t_client where pid=?";
//  PreparedStatement pstmt=null;
//  ResultSet rs=null;
//  try{
//   pstmt=conn.prepareStatement(sql);
//   pstmt.setInt(1, id);
//   rs=pstmt.executeQuery();
//   while(rs.next()){
//    //String clientName=rs.getString("name");
//    for(int i=0;i<level;i++){
//     sbHtml.append("&nbsp;&nbsp;&nbsp;");
//    }
//    if("N".equals(rs.getString("is_leaf"))){
//     sbHtml.append("-").append(rs.getString("name")).append("<br/>");
//     readClientTree(conn,rs.getInt("id"),level+1);
//    }else{
//     sbHtml.append("+").append(rs.getString("name")).append("<br/>");
//    }
//   }
//  }finally{
//   DbUtil.close(rs);
//   DbUtil.close(pstmt);
//  }
// }
 
 //第四步:采用div生成树形结构.每个节点之前都有个div,每一个都有div的结束.
 private void readClientTree(Connection conn,int id,int level)throws SQLException{
  String sql="select * from t_client where pid=?";
  PreparedStatement pstmt=null;
  ResultSet rs=null;
  try{
   pstmt=conn.prepareStatement(sql);
   pstmt.setInt(1, id);
   rs=pstmt.executeQuery();
   while(rs.next()){
    //String clientName=rs.getString("name");
    sbHtml.append("<div>");
    for(int i=0;i<level;i++){
     sbHtml.append("<img src=/"../images/white.gif/">/n");
    }
    
    if("N".equals(rs.getString("is_leaf"))){
     
     sbHtml.append("<img alt=/"展开/" style=/"cursor:hand;/" onClick=/"display('"+rs.getInt("id")+"');/"/n")
      .append("id=/"img"+rs.getInt("id")+"/" src=/"../images/plus.gif/">/n")
     .append("<img id=/"im"+rs.getInt("id")+"/" src=/"../images/closedfold.gif/">/n")
     .append("<a href=/"client_node_crud.jsp?id="+rs.getInt("id")+"/" target=/"clientDispAreaFrame/">"+rs.getString("name")+"</a>/n")
     .append("<div style=/"display:none;/" id=/"div"+rs.getInt("id")+"/">/n");
     
     //sbHtml.append("-").append(rs.getString("name")).append("<br/>");
     readClientTree(conn,rs.getInt("id"),level+1);
     sbHtml.append("</div>/n");
    }else{
     
     sbHtml.append("<img src=/"../images/minus.gif/">/n")
     .append("<img src=/"../images/openfold.gif/">/n");
     if(Constants.YES.equals(rs.getString("is_client"))){
      sbHtml.append("<a href=/"client_crud.jsp?id="+rs.getInt("id")+"/" target=/"clientDispAreaFrame/">"+rs.getString("name")+"</a>/n");
     }else{
      sbHtml.append("<a href=/"client_node_crud.jsp?id="+rs.getInt("id")+"/" target=/"clientDispAreaFrame/">"+rs.getString("name")+"</a>/n");
     }
     
     //sbHtml.append("+").append(rs.getString("name")).append("<br/>");
    }
    sbHtml.append("</div>/n");
   }
  }finally{
   DbUtil.close(rs);
   DbUtil.close(pstmt);
  }
 }

div树原理图:

原创粉丝点击