您的位置:程序门 -> java -> web 开发



麻烦帮我看看,我的dojo的tree怎么不好使?谢谢!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


麻烦帮我看看,我的dojo的tree怎么不好使?谢谢!
发表于:2007-06-27 20:10:24 楼主
我是想实现懒装入,在树刚展开的时候只显示第一层节点,等到要展开具体的第二层节点的时候再到后台去读数据。现在只能展开第一层节点,点击展开节点的那个加号没有反应。麻烦帮我看看是怎么回事。谢谢!

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;
发表于:2007-06-28 13:11:251楼 得分:0
这个我不是很懂,帮顶吧~


快速检索

最新资讯
热门点击