请教一下,为什么我这里Ext.tree.Panel后续追加的子孙节点都没有办法正常在页面上显示出来呢

请教一下,为什么我这里Ext.tree.Panel后续追加的子孙节点都没有办法正常在页面上显示出来呢,第1张

不知道你说的正常显示是什么意思

ExtonReady(function(){

//创建树组件

  var tree = Extcreate('ExttreePanel',{

    renderTo:ExtgetBody()

  });

  //设置根节点

   treesetRootNode({

    text: 'Root',

    expanded: true,

    children: [

        {

            text: 'Child 1',

            leaf: true

        },

        {

            text: 'Child 2',

            leaf: true

        }

    ]

  });

//treegetRootNode()获取根节点

  var root = treegetRootNode();

  //rootappendChild追加子节点  

  var parent = rootappendChild({

      text: 'Parent 1',

expanded:true//这里默认打开

  });

//子节点上追加孙节点

  parentappendChild({

      text: 'Child 3',

      leaf: true

  });

});

没默认打开前

默认打开后

这不是可以正常显示么。

treeon("itemclick",function(view,record,item,index,e){

alert("点击的节点ID是:"+recordrawid+",文字是:"+recordrawtext);

});

对于ext来说最好的方式是不要一下将所有的节点全部展开,因为这样的话当数据量大的时候,后台读取所有节点的数据,并且拼装tree节点的速度比较慢,而且渲染也比较慢,经常在默认时间内无法渲染出你从后台读取的数据,所以建议点击一个节点的时候在进行ajax的异步加载。

相关代码:

//点击节点触发

treeon("click", function(node, event) {

// 判断当前节点是否为第一级子节点

if (nodeid != 0) {

if(nodeparentNodeid==0){

formPanelfindById('checkBtn')enable();

}else{

formPanelfindById('checkBtn')disable();

}

var fatherText = nodeparentNodetext;

if(fatherText!=null){

formPanelfindById('supercatName')setValue(fatherText);

}else{

formPanelfindById('supercatName')setValue('公开分类');

}

formPanelfindById('catIsroot')setValue(nodeid);

setdate(formPanel, nodeid,node)

} else {

formPanelfindById('checkBtn')enable();

formPanelfindById('catIsroot')setValue('1');

ExtgetCmp('catName')setValue('');

ExtgetCmp('catUnitidname')setValue('');

ExtMsgalert('提示', '请选择具体类别');

}

});

//首节点

rootNode = new ExttreeAsyncTreeNode({

id : "0",

text : "公开类别"

});

tree = new ExttreeTreePanel({

root : rootNode,

frame : true,

animate : true, // 开启动画效果

enableDD : false, // 不允许子节点拖动

border : true, // 没有边框

singleClickExpand : true,

autoScroll : true,

tbar : tbar,

height : documentbodyclientHeight,

height : documentbodyclientHeight,

loader : new ExttreeTreeLoader({

dataUrl : REQUEST_URL,

baseParams : {

method : 'getOpenBasicTree'

}

})

});

// 默认展开第一层

rootNodeexpand(false, true);

然后将tree放到一个panel里面就行了

如果你的treePanel的数据如下

var treeStore = Extcreate('ExtdataTreeStore', {root: {expanded: true,

children: [

{ text: "node1" },

{ text: "node2", expanded: true, children: [

{ text: "child1", leaf: true },

{ text: "child2", leaf: true}] },

{ text: "node3"}]}});

那么数的root节点和node2是默认展开的,你可以在数据里定义expanded=true来设置默认展开的节点。

var store = Extcreate('ExtdataTreeStore', {

model: 'Demo',

proxy: {

type: 'ajax',

url: 'treejson' //后台json

},

});

前台说白了和后台没多大关系,它只需要 一串json数组(或者xml),不管你用的什么后台。

以上就是关于请教一下,为什么我这里Ext.tree.Panel后续追加的子孙节点都没有办法正常在页面上显示出来呢全部的内容,包括:请教一下,为什么我这里Ext.tree.Panel后续追加的子孙节点都没有办法正常在页面上显示出来呢、ExtJs4.0中tree点击获取该节点的id或者text,求助、Ext 中 treePanel节点自动全部展开问题;等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9331949.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存