思路话语

。Arlen:思想有多远你就能走多远...

MS的TreeView js控制方法

  • 被选择的节点的索引:
    tree.selectedNodeIndex

  • 被单击的节点的索引:
    tree.clickedNodeIndex

  • 获取一个节点:
    tree.getTreeNode(nodeIndex)

  • 在根节点下增加一个子节点:
    var tree = document.all['TreeView1'];
    var node = tree.createTreeNode() ;
    tree.add(node);
    node.setAttribute( "text", "aaaa");

  • 在当前节点下增加一个子节点:
    var tree = document.all['TreeView1'];
    var node = tree.createTreeNode() ;
    var parentNode = tree.getTreeNode( tree.clickedNodeIndex);
    parentNode.add(node);
    node.setAttribute( "text", "aaaa");

  • 通过XML文件来增加子节点:
    node.setAttribute("NavigateUrl","xxx");
    node.databind();
  • 动态增加子节点后自动展开:
    node.setAttribute('expanded', 'true');//MS提供的HTC中需要修改一个地方,否则就会产生一个异常
  • 获取节点的属性:
    node.getAttribute("xxx")
  • 设置节点的属性 :
    node.setAttribute('xxx', 'xxxx');
  • 常用属性列表:
    属性 含义
    CheckBox True False 是否有选择框
    checked True False 选择框是否被选中
    Expanded True False 是否展开
    ImageURL   正常状态下左边的图标
    SelectedImageUrl   当节点被选择时左边的图标
    ExpandedImageUrl   当节点被展开后左边的图标
    Target   目标框架
    navigateurl   目标URL
    type   节点的类型
    childtype   子节点的类型
    Text   节点显示的文本
    innerText    
    innerHTML    
    defaultstyle   默认的风格
    hoverstyle   当鼠标移到节点的上面时的风格
    selectedstyle   当节点被选择时的风格
    treenodesrc    
  • 获取父节点:
    node.getParent()
  • 获取子节点:
    node.getChildren()
  • 判断节点是否有子节点
    node.getChildren().length > 0
  • 响应onselectedindexchange事件:
    var tree = document.all["tvMain"];
    tree.attachEvent("onselectedindexchange", SelectedIndexChange);
  • 做完之后才找到这个……

    不过,tree.add(subnode)实在是太慢(在节点上加节点倒是很快,为什么?),加一个节点需要100-200毫秒,如果我有20个节点,那就是2-4秒,如果我有1000个节点呢……
    有没有解决方法?

    posted on 2007-12-14 10:14  Arlen  阅读(607)  评论(0编辑  收藏  举报

    导航