ext使用总结(六)树的动态加载,分支的刷新

对于Ext4的树,与Ext.grid.Panel是属于同一个父类Ext.panel.Table,所有有树的有许多的基本特性可以参照Table和grid来学习,当然树也有自己的特性。如下图:

ext使用总结(六)树的动态加载,分支的刷新

在树的动态加载,有如下配置:

Tree的Store中需要的属性:
autoLoad: true,
root:{
        id:null,
        text: "根节点",
        expanded: true
}

Tree的Model中需要的属性:
 proxy: {
        type: 'ajax',
        url:url
},
sorters: [{..}]

服务器端返回的数据格式:
    //nextLevelNodes 是子节点的List
    modelMap.put("children", nextLevelNodes);
    modelMap.put("success", "true");

增加节点后的树的分支刷新:
//selectedNode.raw.id 所选节点的ID
var selectedNodeFromStore = store.getNodeById(selectedNode.raw.id);
//store是树的Store(继承自Ext.data.TreeStore)
store.load({node: selectedNodeFromStore, callback:function() {
                        //currentNode.raw.id 新增加节点的ID  
                        var currentNode = store.getNodeById(currentNode.raw.id);
                        //选择当前新增加的节点
                        tree.getSelectionModel().select(currentNode, true, true);
                        /* select the newly created record via view*/
                        /* tree.getView().select(currentNode, true, true); */ 
                        //父节点展开
                        selectedNodeFromStore.expand();
                        //tree.getView().fireEvent('itemclick', tree, currentNode);
                      

                    }, scope: this});


感谢和我一起开发的,给我帮助的所有的朋友们,和给予我灵感的乔梁,还有程序员的网站http://stackoverflow.com/, Develop with Pleasure!

你可能感兴趣的:(ext)