String sql = "select cc_h as id ,cc_mc as text   from cc  ";
List list =getSqlList(sql);
JSONArray jsonObject = JSONArray.fromObject(list);
json = jsonObject.toString();出来的数据是
[{"text":"aa","id":"2"},{"text":"bb","id":"3"},{"text":"cc","id":"4"},
{"text":"dd","id":"5"}]
都只是根的子节点,没有根据 cc 的parent_cc_h 构建子节点

解决方案 »

  1.   


    var tree = new Ext.tree.TreePanel({
            loader: new Ext.tree.TreeLoader({
                dataUrl: '10-01.txt'
            }),
            root: new Ext.tree.AsyncTreeNode({
                id: '0',
                text: '根'
            }),
            autoHeight: true,
            renderTo: 'tree'
        });10-01.txt
    [
        {text:'01',qtip:'01',children:[
            {text:'01-01',qtip:'01-01',leaf:true},
            {text:'01-02',qtip:'01-02',leaf:true},
            {text:'01-03',qtip:'01-03',leaf:true}
        ]},
        {text:'02',qtip:'02',children:[
            {text:'02-01',qtip:'02-01',leaf:true},
            {text:'02-02',qtip:'02-02',leaf:true},
            {text:'02-03',qtip:'02-03',leaf:true}
        ]}
    ]
      

  2.   


    我现在可以一步步加载树,但我想一次性全部加载出来怎么写呢?
    sql="select  * from cc where parent_cc_h="+ parent_cc_h+ " order by cc_h";
    for(; rs.next(); treeNodeList.add(treeNode))
    {
    treeNode = new JsonTreeNode();
    String categoryId = rs.getString("cc_h");
    treeNode.setId(categoryId);
    treeNode.setText(rs.getString("cc_mc"));
    treeNode.setDescription(rs.getString("cc_mc"));            
    if (parentIDStr.indexOf("|" + categoryId + "|") >= 0) //父节点 
    {
    treeNode.setCls("folder");
    treeNode.setLeaf(false);
    treeNode.setExpandable(false);
    }
    else //子节点 
    {
    treeNode.setCls("file");
    treeNode.setLeaf(true);
    treeNode.setExpandable(false);
    }
    }JSONArray jsonObject = JSONArray.fromObject(treeNodeList);
      

  3.   

    假如Ext树的名称是Tree
    用如下代码即可 一次性加载所有节点
    Tree.root.expand(true,true);
      

  4.   

    如何生成Ext树所需的json字符串