我用的是 ext-3.1 。
树型结构已经实现了,但是现在有一个新要求:
<script type="text/javascript">
var xiangmuAry = "多层建筑,高层建筑,给排水工程,路基路面工程,市容环境综合整治,市政供水工程,市政排水工程,";
</script>就是树节点输出时,要跟上面的 xiangmuAry 里面查找,如果节点名称在xiangmuAry 中存在,就设置该节点文字颜色为红色,不存在就设置为灰色,并添加alert提示。
请问要怎么样设置呢?
树的全部代码在下面:var xiangmuAry = "多层建筑,高层建筑,给排水工程,路基路面工程,市容环境综合整治,市政供水工程,市政排水工程,";
var reloadFlag = 0;
function setreload(flag) {
reloadFlag = flag;
}
Ext.BLANK_IMAGE_URL = 'js/ext-3.1/resources/images/default/s.gif';
Ext.onReady(function() {
var Tree = Ext.tree;
var root = new Tree.AsyncTreeNode({
text : '目录',
draggable : false,
nodeType : 'async',
id : '-1' });
var treeLoader = new Tree.TreeLoader({
dataUrl : 'blistMain.do?method=getblistTree&parentId=-1'
});
var tree = new Tree.TreePanel({
rootVisible : false, // 是否显示根节点
id : 'tree1',
root : root,
el : 'tree-div',
loader : treeLoader,
useArrows : false,
lines : true,
autoScroll : true,
animate : false,
enableDD : true,
containerScroll : true,
border : false
});
var treeClick = function(node) {
tree.loader.dataUrl = 'blistMain.do?method=getblistTree&parentId='+ node.id;
};
tree.on('beforeload', treeClick);
var clickMe = function(node) {
if(window.nodeClick){
nodeClick(node);
}else{
if (node.isLeaf()) {
var myurl = "blistMain.do?method=searchList&firstsearch=0&fcode=" + node.attributes.code;
window.open(myurl, "rightframe");
} else {
node.toggle();
}
}
}
tree.on('click', clickMe);
tree.render();
root.expand();
});

解决方案 »

  1.   

    用生成的id或者class在style中设置,或者用js动态设置就可以了
      

  2.   

    网上没例子,我自己到Ext JS官网 上查 API搞定啦。
    加入以下代码即可:
      var expandnodeMe = function(node) {
    node.eachChild(setNodeText);
    }; 
    var setNodeText = function(node){
    if(xiangmuAry.indexOf(node.text)>=0){
    node.setText("<font color=red>"+node.text+"</font>");
    }else{
    if(node.isLeaf()){
    node.setText("<font color=#cccccc>"+node.text+"</font>");
    node.on('click',clickNode);
    }
    }
    }
    var clickNode = function(node){alert("该工程分类还没发布信息");}
    tree.on('expandnode',expandnodeMe)
    就是在节点展开后,遍历子节点