这里说的选中是指鼠标点击一个节点后,节点那一行出现浅蓝色背景的选中,而非checkbox的勾选
方法
Ext.tree.TreePanel.getSelectionModel().getSelectedNode();
Ext.tree.TreePanel.getSelectionModel()获得的是一个TreeSelectionModel对象,
这个TreeSelectionModel目前在Ext中有两个Ext.tree.DefaultSelectionModel和Ext.tree.MultiSelectionModel
首先我们使用Ext.tree.TreeLoader来初始化了一个TreeLoader对象,构造函数中的配置参数url表示获得树节点信息的url。然后在初始化根节点的时候我们使用的是AsyncTreeNode,在该节点中指定该节点的 laoder为前面定义的loader。执行这段程序,在点击“根节点”时,会从服务器端指定root节点的子节点信息。
TreeLoader严格来说是针对树的节点来定义的,可以给树中的每一个节点定义不同的TreeLoader,默认情况下,如果一个 AsyncTreeNode节点在准备加载子节点的时候,如果该节点上没有定义loader,则会使用TreePanel中定义的loader作为加载器。因此,我们可以直接在TreePanel上面指定loader属性,这样就不需要给每一个节点指定具体的TreeLoader了。
Ext.onReady(function(){
var root=new Ext.tree.TreeNode({
id:"root",
text:"树的根"
});
var c1=new Ext.tree.TreeNode({
text:"子节点1"
})
var c2=new Ext.tree.AsyncTreeNode({
text:"子节点2"
});
root.appendChild(c1);
root.appendChild(c2);
var tree=new Ext.tree.TreePanel({
renderTo:"hello",
root:root,
width:300,
loader:new Ext.tree.TreeLoader({
applyLoader:false,
url:"treedata.js"
})
});
});
- Ext.onReady(function(){
- Ext.BLANK_IMAGE_URL = '../js/extjs/3.2.0/resources/images/default/s.gif';
- Ext.chart.Chart.CHART_URL = '../js/extjs/3.2.0/resources/charts.swf';
- Ext.QuickTips.init();
- testTreeGrid();
- });
- function testTreeGrid(){
- var tree = new Ext.ux.tree.TreeGrid({
- title: '地市',
- width: 550,
- height: 300,
- dataUrl: 'treegrid-data.json',
- renderTo: Ext.getBody(),
- enableDD: true,
- columns:[{
- header: 'ID',
- dataIndex: 'id',
- width: 200
- },{
- header: '名称',
- dataIndex: 'fdcName',
- width: 180
- },{
- header: '描述',
- dataIndex: 'fdcDesp',
- width: 100,
- align: 'center',
- sortType: 'string',
- tpl: new Ext.XTemplate('{fdcDesp:this.formatDesp}', {
- formatDesp: function(v) {
- return v||'-'
- }
- })
- }],
- tbar:[{
- text:'当前路径',
- tooltip:'保存当前选择节点的路径',
- scope:this,
- handler:function(b,e){
- //获取当前选择节点的路径
- var node = tree.getSelectionModel().getSelectedNode();
- var path = node.getPath('id');
- Ext.getCmp('tf').setValue(path);
- }
- },{
- xtype:'textfield',
- id:'tf',
- width:300,
- value:''
- },{
- text:'选择路径',
- scope:this,
- handler:function(b,e){
- var path = Ext.getCmp('tf').getValue();
- //展开路径,并在回调函数里面选择该节点
- tree.expandPath(path,'id',function(bSucess,oLastNode){
- tree.getSelectionModel().select(oLastNode);
- });
- }
- },{
- text:'选择江门',
- scope:this,
- handler:function(b,e){
- var path = '/xnode-11/cn86/gd020/gd020areas/jm0750';
- //展开路径,并在回调函数里面选择该节点
- tree.expandPath(path,'id',function(bSucess,oLastNode){
- tree.getSelectionModel().select(oLastNode);
- });
- }
- },{
- text:'重载',
- tooltip:'重载数据并选择上一次的节点',
- scope:this,
- handler:function(b,e){
- var path = tree.getSelectionModel().getSelectedNode().getPath('id');
- //重载数据,并在回调函数里面选择上一次的节点
- tree.getLoader().load(tree.getRootNode(),function(treeNode){
- //展开路径,并在回调函数里面选择该节点
- tree.expandPath(path,'id',function(bSucess,oLastNode){
- tree.getSelectionModel().select(oLastNode);
- });
- },this);
- }
- }]
- });
- }