在action中使用sql按目录的方式查询出部门记录,其中包括部门名称,部门ID,部门父ID。顶头的记录的部门父ID必须为-1,查询语句如:
select dept_id,dept_name,parent_id from info_dept connect by prior dept_id = parent_id start with dept_id=?
把获得的list记录set到request中,在页面中显示出来。
页面代码如下:
< link href ="<%=request.getContextPath()%>/gdnumweb/css/dtree.css" rel ="stylesheet" type ="text/css" >
< body >
< script type ="text/javascript" src ="<%=request.getContextPath()%>/gdnumweb/js/dtree.js" ></ script >
< div class ="dtree" >
< p >< a href ="javascript: tree.openAll();" > 展开所有 </ a > | < a href ="javascript: tree.closeAll();" > 关闭所有 </ a ></ p >
< script language ="javascript" type ="text/javascript" >
tree = new dTree('tree');
< logic:iterate id = " dept " name = " list " >
tree.add( " <bean:write name= " dept " property= " dept_id " /> " , " <bean:write name= " dept " property= " parent_id " /> " , " <bean:write name= " dept " property= " dept_name " /> " ,' <%= path %>/ gdnumUserDept. do ? method = getDeptUserInfo & deptNo =< bean:write name = " dept " property = " dept_id " /> ','','mainframe');
</ logic:iterate >
document.write(tree);
</ script >
在组合框中输出树形目录
获取列表的java方法
//提取当前用户的部门下拉
public List getSourceDept(String deptNo) {
List list = null;
Connection con = CommonUtils.currentSession().connection();
ResultSet rs = null;
ResultSetMetaData rsmd = null;
java.sql.PreparedStatement ps = null;
String sql = "select deptno,(tools.buildTree(level)||deptname) deptname from sys_dept "
+ "connect by parent_deptno=prior deptno "
+ "start with deptno=?";
HashMap map = null;
try {
ps = con.prepareStatement(sql);
ps.setString(1, deptNo);
rs = ps.executeQuery();
//System.out.println("rs.size:" + rs.getFetchSize());
rsmd = rs.getMetaData();
list = new ArrayList();
while (rs.next()) {
map = new HashMap();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
map.put(rsmd.getColumnName(i).toLowerCase(), rs.getString(i));
}
list.add(map);
}
rs.close();
}
catch (Exception ex) {
log.error("提取当前用户的部门下拉出错com.unicom.gzmas.reports.bo.getSourceDept:" + ex);
}
finally {
CommonUtils.closeSession();
}
return list;
}
页面输出的代码
<select id="mbackdept"> <!-- 部门 -->
<option value="all">-----全部----</option>
<logic:iterate id="l" name="target">
<option value="<bean:write name="l" property="deptno"/>"><bean:write name="l" property="deptname"/></option>
</logic:iterate>
</select>
构造树的存储过程
/*构造树*/
Function Buildtree(In_Level In Number) Return Varchar2 As
Result Varchar2(4000);
Begin
If In_Level = 1 Then
Return Null;
End If;
Return '|' || Incstring('-', (In_Level - 1) * 2);
End;
分享到:
相关推荐
dtree 部门与人员目录树.用于人员,部门的组织目录的显示
用JS对象 dTree 生成无限级对象,在页面取得存在Action当中的List,生成动态树形菜单
jsp-dtree-目录树解决树形结构问题 jsp-dtree-目录树解决树形结构问题 jsp-dtree-目录树解决树形结构问题
用jquery的插件dtree构建生成树的实例,非常详细,根据项目需要的不同,共总结了8种,任你挑选。
最强大的树型JS代码DTREE,功能强大美观
dtree实现的树支持多选,dtree实现的树,jsp树,js树
用于目录树的生成,是一个目录树加载的例子框架,可以查看目录树 ,值得学习借鉴dtree
网上实例一般都是介绍整棵树的生成,本实例根据网上的实例修改,生成菜单树,希望对想要自己做这方面的后来者有所帮助。 基于oracle数据库,包括源码,新建表,然后,导入工程即可运行。
dtree选择部门或者选择部门下人员复选框单选框插件
使用纯java代码遍历文件夹,生成一个文件夹目录结构的目录树。 及返回一个包含有 id(文件夹id) fid(当前文件夹父目录文件夹id) name (文件/文件夹路径)的集合对象。可根据这个结果传到前台,通过jquery.ztree 或是...
如何使用DTREE构建树菜单,包括构建动态树和静态树
Dtree Jquery动态生成树节点 http://www.iteye.com/topic/350056
function dTree(objName) { this.config = { target : null, folderLinks : true, useSelection : true, useCookies : true, useLines : true, useIcons : true, ...
dtree在生成简单树方面比使用Jquery的treeView要方便,代码实现的是用户选择的树状结构图。
使用dtree插件生成动态树 1,从动态树的要求我们要从数据库生成 d = new dTree('d'); d.add(1,0,'云南电信'); d.add(11,1,'省公司本部'); d.add(12,1,'昆明分公司'); d.add(121,12,'公司领导'); d.add(122,12,'...
带ACCESS,asp的JS树形dtree,
JavaScript Dtree 最经典的JS目录树
dtree 保存在csdn以便以后使用 dtree 树结构 前端
本工程使用dTree组件实现树形菜单的展示 有静态树形菜单和动态(从数据库获取数据)树形菜单展示两种 数据库连接采用简单的类实现 数据位MySQL(5.0.21),数据库创建脚本为dtree.sql 菜单既有普通的树结构展示,也有...