ExtJS4 树

Ext 4 树:

1.定义数据源 继承自 TreeStore 

reader的root属性:表示从哪读取数据, 默认为 'children'

nodeParam: 发送请求时的参数名字,默认为 'node'

/**
 * 定义热点地区数据源
 */
Ext.define('WOC.store.HotZoneStore',{
   extend: 'Ext.data.TreeStore',
   nodeParam:'parentCode',
   proxy: {
            type: 'ajax',
            url : 'ajax/hotSpotsTree',
            reader: {
                type: 'json',
                root: 'returnMsg'
            }
        },
    root: {
    	id : -1,//TOFIX 和数据库设定保持同步
		text:'热点结构管理',
	    expanded: false
    }
});


服务器返回的数据格式例子:

id和text必须

 leaf 表示是否为叶子节点,非必须,ext文档有说到:The string "true" and the number 1 are converted to boolean true.

{"returnMsg":[{"id":"1902127771","text":"南京市","data":{"PARENT_CODE":"3200000000000","HOTCOUNTS":0,"REMARK":null,"ZONE_NAME":"南京市","ZONE_CODE":"1902127771"},"leaf":1}],"success":"true"}

2.定义tree

   单击事件 itemclick,参数record有root属性,可用 record.get("root")  来判断是否为根节点,或根据id判断,record.get("id")

   当返回的json数据带有额外信息的非简单信息时,如上面的data,发现record.get("data")去不到数据,原因未知,有待研究,

   用record.raw.data可访问

   刷新树:treeStore.load()

   触发单击事件:tree.fireEvent('itemclick',tree,tree.getRootNode());

/**
 * 定义热点地区树
 */
Ext.define('WOC.tree.HotZoneTree',{
	extend: 'Ext.tree.Panel',
	alias : 'widget.hotZoneTree',
	store : treeStore,
	height: 300,
	title : '热点结构信息',
	rootVisible: true,  
	renderTo: 'treeDiv',
	
	listeners: {
		itemclick: function(tree,record){
			if(record.get("root")){
				//根节点
			}else{
				var data = record.raw.data;
			}
             }
      }
});

3.后台
树节点bean

public class ExtTreeNode {

	private String id;   //id
	private String text; //文本
	private int leaf;    //叶子节点标识   1:叶子  0:树枝   ExtApi: The string "true" and the number 1 are converted to boolean true.
	private Map<String, Object> data = new HashMap<String, Object>(); //附加信息

4.oracle10g  数据库几个树函数

connect by prior    start  with

connect_by_is_leaf  是否为叶子  ,1叶子 0 非叶子

	select ZONE_CODE, ZONE_NAME, CONNECT_BY_ISLEAF from TB_HOTZONE
		where PARENT_CODE = #parentCode#
		connect by prior ZONE_CODE=PARENT_CODE start with PARENT_CODE = #parentCode#
		order by ZONE_CODE



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值