我是想实现懒装入,在树刚展开的时候只显示第一层节点,等到要展开具体的第二层节点的时候再到后台去读数据。现在只能展开第一层节点,点击展开节点的那个加号没有反应。麻烦帮我看看是怎么回事。谢谢!jsp页面如下<script type="text/javascript"> dojo.require("dojo.widget.*");
dojo.require("dojo.widget.TreeV3");
dojo.require("dojo.widget.TreeNodeV3");
dojo.require("dojo.widget.TreeLinkExtension");
dojo.require("dojo.widget.TreeSelectorV3");
dojo.require("dojo.widget.TreeRPCController");
dojo.require("dojo.widget.TreeLoadingControllerV3");
dojo.require("dojo.widget.TreeContextMenu");
dojo.require("dojo.widget.TreeDocIconExtension");
dojo.require("dojo.widget.TreeDisableWrapExtension");
dojo.hostenv.writeIncludes();
</script>  <style>
        .myCssClass {
    font-family: Arial, Helvetica, sans-serif;
            font-size: 18px;
            font-style: italic;
        }
        .TreeIconTreeNonLeafIconnodetype1{
background-image: url('<%=request.getContextPath()%>/images/mailbox1.gif'); 
}.TreeIconTreeLeafIconnodetype1{
background-image: url('<%=request.getContextPath()%>/images/closed.gif'); 
}    </style>
</head>
<body>
<script type="text/javascript">
var controller = dojo.widget.createWidget("TreeLoadingControllerV3", 
{widgetId: "controller", DNDController:"create", 
RPCUrl: "<%=request.getContextPath()%>/getMenuTree.do"});
var link = dojo.widget.createWidget("TreeLinkExtension", {widgetId: "link"});
var docIcons = dojo.widget.createWidget("TreeDocIconExtension", {widgetId: "docIcons"});
var disableWrap = dojo.widget.createWidget("TreeDisableWrapExtension", {widgetId: "disableWrap"});
var treeSelector = dojo.widget.createWidget("TreeSelectorv3", {widgetId: "treeSelector"});
dojo.event.topic.subscribe("nodeSelected","treeSelectFired");
dojo.addOnLoad(function(){

//var kw = {url:controller.rpcUrl, sync:"true"};
//controller.runRpc(kw);

//controller.DNDController = "create";


var treeNodes = <%=request.getAttribute("strMenus")%>;
/*

var treeNodes = [
{"isFolder":false,"title":"title1","tree":"rootTree","objectId":"775161","widgetId":"775161"},
{"isFolder":true,"title":"title2","tree":"rootTree","objectId":"775162","widgetId":"775162"} ];
*/
 


var tree = dojo.widget.createWidget("TreeV3", 
{widgetId:"menuTree", listeners: [controller.widgetId,treeSelector.widgetId, link.widgetId, docIcons.widgetId, disableWrap.widgetId], 
"toggle": "wipe", DNDMode:"between" });
/**
 lazy initialization is in effect 
only root-level widgets will be created
*/
//controller.loadProcessResponse(tree, str);
tree.setChildren(treeNodes);
//controller.expandToLevel(tree, 1); document.body.appendChild(tree.domNode); });function treeSelectFired() {
alert("treeSelectFired");
    // get a reference to the treeSelector and get the selected node 
    var treeSelector = dojo.widget.manager.getWidgetById('treeSelector');
    var treeNode = treeSelector.selectedNodes[0];
    
    // get a reference to the songDisplay div
 
    var hostDiv = document.getElementById("songDisplay");
    var isFolder = treeNode['isFolder'];
    if ( !isFolder) {
       var song = treeNode['title'];
       var url = treeNode['url'];
       //treeNode.object = { href: 'http://www.google.com/' };
       link(url);
    } else { 
    }
  
}function link(url){
  //alert(url);
  if(url){
    parent.rightFrame.location.href=url;
  }
}function init() {     //get a reference to the treeSelector
    var treeSelector = dojo.widget.manager.getWidgetById('treeSelector');
    //connect the select event to the function treeSelectFired()
    dojo.event.connect(treeSelector,'select','treeSelectFired'); 
}dojo.addOnLoad(init);
</script></body>
</html>java代码如下
List<Menu> menus = getMenus();
JSONArray result = new JSONArray();
if (menus != null && menus.size() > 0) {
ListIterator<Menu> itMenus = menus.listIterator();
while (itMenus.hasNext()) {
Menu m = itMenus.next();
try {
JSONObject jsonMenuObject = new JSONObject();
jsonMenuObject.put("title", m.getName());
/*
jsonMenuObject.put("childIconSrc", "../images/"
+ m.getImage());
*/
jsonMenuObject.put("nodeDocType", m.getImage());
jsonMenuObject.put("isFolder", mgr.hasChildren(m));
jsonMenuObject.put("widgetId", m.getNumber());
jsonMenuObject.put("objectId", m.getNumber());
/*
JSONArray children = getChildren(m);
if (children.length() > 0){
jsonMenuObject.put("isFolder", true);
jsonMenuObject.put("children", children);
}else{
jsonMenuObject.put("isFolder", false);
jsonMenuObject.put("url", m.getAction());
}
*/
result.put(jsonMenuObject);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
strMenus = result.toString(); // strMenus = "[{title: \"Node 1\" ,children: [{title: \"Node
// 1.1\"},{title: \"Node 1.2\"} ]}, {title: \"Node 2\" }]";
/*
HttpServletResponse response = getResponse();
response.setContentType("text/json; charset=gb2312");
PrintWriter out = response.getWriter();

System.out.println(strMenus);
out.write(strMenus);
*/
System.out.println(strMenus);
return SUCCESS;