我已经能够把部门信息通过DOJO树的形式显示出来,并以AJAX的形式显示结点(就是点击左则的加号的时候自动显示子部门),但是我需要在添加子部门信息后,节点最好能自动展开并显示添加的部门信息。不知道怎么样才能做到?请高手帮忙!

解决方案 »

  1.   

    用过DOJO的人,应该都知道dojo.widget.Tree的树吧,它有一个dojo.widget.TreeRPCController
    展开一个树的节点可以用node.source.expand();  
    但是当一个树是异步树的时候,你会发现你用node.source.expand(); 的方法的时候,异步树下面应该加载的节点并没用加载,真是奇怪啊,为什么呢?
    找找DOJO的文档,发现,原来要这样写
    dojo.widget.manager.getWidgetById("appFiles_controller").expand(node);
    先要找到dojo.widget.TreeRPCController,然后通过TreeRPCController来展开,就可以了。
      

  2.   

    这是我做的一个例子,你看看吧。<%@ page language="java" pageEncoding="gbk"%>
    <%@ taglib uri="/struts-tags" prefix="s" %>
    <%
    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>
       <s:head/>
        <base href="<%=basePath%>">
        
        <title>学生管理操作树</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">
    <link rel="stylesheet" type="text/css" href="css/allcss.css">
    <style>
    a{
    color: black;
    text-decoration: none;
    }
    </style>
    <script type="text/javascript">
    dojo.addOnLoad(function() {             
    expandObj(dojo.widget.byId('stusystree'));
    });

    function expandObj(obj){
           if (obj){
               if (obj.children){
                  for(var i = 0 ; i < obj.children.length ; i ++ ){
                      var childObj = obj.children[i];
                      if (childObj){
                         try{childObj.expand();}catch(e){}
                         if (childObj.children){
                             expandObj(childObj);
                         }

                      }
                  }

               }
           }
        }
    </script>
      </head>
      
      <body>
        <s:tree id="stusystree" theme="ajax" showGrid="true" showRootGrid="true" label="学生管理操作树">
       
        <s:treenode id="dutytree" theme="ajax" label="考勤操作" >
         <s:treenode label="<a href='dutyquery.action' target='mainframe'>考勤管理</a>" theme="ajax" id="dutymanage"></s:treenode>
         <s:treenode label="<a href='dutystudutyquerybef.action' target='mainframe'>学生考勤查看<a>" theme="ajax" id="dutyquery"></s:treenode>
         <s:treenode label="<a href='dutystudutychartbef.action' target='mainframe'>考勤图表查看</a>" theme="ajax" id="dutychart"></s:treenode>
        </s:treenode>
        <s:treenode id="worktree" theme="ajax" label="作业操作">
         <s:treenode label="<a href='workquery.action' target='mainframe'>作业管理</a>" theme="ajax" id="workmanage"></s:treenode>
         <s:treenode label="<a href='workstuworkquerybef.action' target='mainframe'>学生作业查看<a>" theme="ajax" id="workquery"></s:treenode>
         <s:treenode label="<a href='workstuworkchartbef.action' target='mainframe'>作业完成图表查看</a>" theme="ajax" id="workchart"></s:treenode>
        </s:treenode>
        <s:treenode id="exercisetree" theme="ajax" label="上机练习操作">
         <s:treenode label="<a href='exercisequery.action' target='mainframe'>上机练习管理</a>" theme="ajax" id="exercisemanage"></s:treenode>
         <s:treenode label="<a href='exercisestuworkquerybef.action' target='mainframe'>上机练习查看<a>" theme="ajax" id="exercisequery"></s:treenode>
         <s:treenode label="<a href='exercisestuworkchartbef.action' target='mainframe'>上机完成图表查看</a>" theme="ajax" id="exercisechart"></s:treenode>
        </s:treenode>
        <s:treenode id="testtree" theme="ajax" label="测试操作">
         <s:treenode label="<a href='testquery.action' target='mainframe'>测试管理</a>" theme="ajax" id="testmanage"></s:treenode>
         <s:treenode label="<a href='teststuworkquerybef.action' target='mainframe'>测试单查看<a>" theme="ajax" id="testquery"></s:treenode>
         <s:treenode label="<a href='teststuworkchartbef.action' target='mainframe'>测试及格率查看</a>" theme="ajax" id="testchart"></s:treenode>
        </s:treenode>
        <s:treenode id="basetree" theme="ajax" label="基础数据操作">
         <s:treenode label="<a href='classquery.action' target='mainframe'>班级管理<a>" theme="ajax" id="classnodetree"></s:treenode>
         <s:treenode label="<a href='studentquery.action' target='mainframe'>学员管理</a>" theme="ajax" id="classnodetree"></s:treenode>
         <s:treenode label="<a href='emailrecordquery.action' target='mainframe'>已发邮件管理</a>" theme="ajax" id="emailrecordtree"></s:treenode>
         <s:treenode label="<a href='dbbackup.jsp' target='mainframe'>数据库备份</a>" theme="ajax" id="dbbackupnodetree"></s:treenode>
        </s:treenode>
        
        </s:tree>
      </body>
    </html>