用梅花雪脚本控件: MzTreeView1.0 在web上面做一个动态的树,用jsp做,如何能动态生成啊!
我动态生成的节点,但节点上没有属性字符啊!狂晕,我的代码如下:
<head>
</head>
<body><script language="JavaScript"
  src="e:/MzTreeView10/MzTreeView10.js"></script>
<style>
A.MzTreeview
{
  font-size: 9pt;
  padding-left: 3px;
}
</style>
<script language="JavaScript">
  var tree = new MzTreeView("tree");  tree.icons["property"] = "property.gif";
  tree.icons["css"] = "collection.gif";
  tree.icons["book"]  = "book.gif";
  tree.iconsExpand["book"] = "bookopen.gif"; //展开时对应的图片  tree.setIconPath("e://MzTreeView10//"); //可用相对路径  tree.nodes["0_1"] = "text:我的根"; 
  tree.nodes["1_400"] = "text:JavaScript; icon:book; data:id=400";
  tree.nodes["400_409"] = "text:属性; data:id=409"; 
  tree.nodes["408_1239"] = "text:||;  data:id=239; method:alert('节点响应:HTML方法:alert!');";    //调用html方法:alert
  tree.nodes["409_1163"] = "text:E;   data:id=163; method:myMethod('节点响应:调用自定义函数:myMethod!')";  //调用自定义函数:myMethod
  
  var strstree="\""+"text:"+"动态节点500"+"; data:id=500"+"\"";
 
  //mytree(tree,strstree);//用方法动态定义“Tree”的子节点。
               //注:动态定义的方法要与 var tree = new MzTreeView("tree");它在同一个<script language="JavaScript">中!  tree.nodes["1_600"]="text:动态生成600; data:id=500";
  tree.nodes["1_700"]=strstree;
  document.write(tree.toString());    //亦可用 obj.innerHTML = tree.toString();
  function mytree(mytreevar,strtext){
   mytreevar.nodes["1_500"]=strtext;
   }
  function myMethod(str){
   alert(str);
   top.fmyshow.myshow.value="从Tree窗口传来的值!";
   }
  function cc(){
   cccc.value=strstree;
   }
  </script>
 
  <input type="text" id="cccc" size=50 value=""/>
  <input type="button" id="11" value="cc" onClick="cc();"/>
 </body>
</html>

解决方案 »

  1.   

    变量:var strstree="\""+"text:"+"动态节点500"+"; data:id=500"+"\"";就是给节点的属性字符串,
    这个串给tree.nodes["1_700"]=strstree;,可它怎么也不能给赋上去,这是为什么啊!
      

  2.   

    CSDN的树就是动态的,把树的页面另存一下就看出来了.
      

  3.   

    var strstree="\""+"text:"+"动态节点500"+"; data:id=500"+"\"";"\"" ,感觉这个有点问题,为什么要给字符串加上双引号?
    你这样写就表示一个字符,它的内容还包含了双引号。
    没有用过这个控件,只是猜测。
      

  4.   

    梅花的好象是一次性load的,考虑效率,参考梅花的,自己写了个 动态的, AJAX 的. 简单说就是 需要展开的时候才去查数据库,再把结果数据生成节点.
     
      

  5.   

    to:tfp(tfp) ( 
    你是说梅花的树不能动态生成了吗。可是csdn里面好像是动态生成 的啊。它里面没有静态的代码啊。你可以到csdn的树的页面上去看一下它的代码。是完全动态生成的啊
      

  6.   

    to:tfp(tfp) (
    那一个人啊,能给个地址吗?
      

  7.   

    解决理论:tree.nodes["1_600"]="text:动态生成600; data:id=500";
    引号不是格式,只要保证引号中的为字符串,引号就可以去除。下面是分解后做的方法:
    <script language="JavaScript"
      src="C:/Documents and Settings/zzm/jbproject/untitled3/WebModule1/MzTreeView10/MzTreeView10.js"></script>
    <style>
    ...
    <script language="JavaScript">
     var tree = new MzTreeView("tree");
     mytree(tree,"0","1","动态生成1","myMethod('动态生成1')");
     document.write(tree.toString());    //亦可用 obj.innerHTML = tree.toString();//动态建立树的方法:
      function mytree(tree,ParentsID,ID,TextProperty,Method){
       tree.nodes[ParentsID+"_"+ID]="text:"+TextProperty+"; data:id="+ID+";method:"+Method;
       }
       //方法,用于显示:
      function myMethod(str){
       alert(str);
       //top.ShowMessage.mytext.value=str;
       top.ShowMessage.mytext.value=str;
       }
      </script>
      

  8.   

    这一种写法是方法的传出来的数据也是随给定值不同而变化的:<%
    ArrayList _datalist= new ArrayList();
    _datalist = myArrary.mytree1();for(int i=0;i<_datalist.size();i++){
    %>mytree(tree,"<%=((dataBean)_datalist.get(i)).getClassId()%>",
                "<%=((dataBean)_datalist.get(i)).getParentId()%>",
                "<%=((dataBean)_datalist.get(i)).getFullName()%>",
                "myMethod","<%=((dataBean)_datalist.get(i)).getFullName()%>");
    <%
    }
    %>   document.write(tree.toString());      //亦可用 obj.innerHTML = tree.toString();
      //动态建立树的方法:
      //参数说明:tree:是树的一个对象MzTreeView,
      //         ParentsID:是父节点的ID,字符串类型
      //         ID是本节点的ID:字符串类型
      //         TextProperty:是本节点显示的文字内容,字符串类型
      //         Method:是方法名字(带参数在内),字符串类型
      //         Methodparameter:Method方法的参数
    function mytree(tree,ParentsID,ID,TextProperty,Method,Methodparameter){
       tree.nodes[ParentsID+"_"+ID]="text:"+TextProperty+"; data:id="+ID+";method:"+Method+"('"+Methodparameter+"')";
       }
       //方法,用于显示:
      function myMethod(str){
       alert(str);
       top.ShowMessage.mytext.value=str;
       }  </script>