zoukankan      html  css  js  c++  java
  • Extjs 树节点操作常用属性

    tree: 树     node:节点

    1、全部展开   tree.expandAll();

    2、全部收缩   tree.collapseAll();

    3、得到父节点  node.parentNode

    4、判断是否有父节点  node.parentNode==null

    5、判断是否有子节点  node.hasChildNodes()

    6、获取下一级的所有子节点  node.eachChild(function(child){})

    7、获取选择的节点  tree.getSelectionModel().getSelectedNode()

    8、设置选中节点  node.select()

    9、上移节点  node.selectPrevious();

    10、下移节点  node.selectNext();

    11、获取节点ID   node.id  注:如果这种方式拿出来的ID带有Store 的ID 则试试 node.internalId

    12、获取节点值  node.text

    13、获取节点提示  node.attributes.qtip

    14、node.attributes.mid//这里的mid是我数据库中一个字段,我在查询的时候一并传入到客户端,这时我就             可以使用node.attributes.mid,这样一来我们就可以隐藏一些我们使用但又不必               让客户知道的相关属性了。。。

    带选择框    注:只需在服务器返回的json数据每一个节点加上checked:true或者false属性 就会出现带选择框       的树

    15、获取选中的节点

      var nodes=tree.getChecked();

      Ext.each(nodes,function(node){})

    16、获取是否选择  node.getUI().checkbox.checked;

    17、设置节点选择  node.ui.toggleCheck(trye);//显示选中  node.attributes.checked=true//赋值

    18、设置一个新的节点

      var newNode=new Ext.tree.TreeNode({id:'id',text:'text',iconCls:'url',qtip:'tip'})

    19、插入新的节点  node.appendChild(newNode);

    20、删除节点  node.remove();

    21、这里所说的选中时指鼠标点击一个节点背景变色的选中,而非checkBox的勾选,若要获得checkBox的选中  使用tree.getChecked();

      Ext.tree.TreePanel.getSelectionModel().getSelectedNode();

      Ext.tree.TreePanel.getSelectionModel()获得的是一个TreeSelectionModel对象,

      Ext.tree.MultiSelectionModel目前在Ext中有两个                          Ext.tree.DefaultSelectionModel.getSelectedNode()返回的是单个节点对象

    22、选中节点和父节点

      1)、父节点选择

      function parentclick(node)

      {

        var parent=node.parentNode;//获取父节点

        var flag=node.getUI().checkbox.checked;//判断是否选中

        if(parent!=null)//父节点不为空

        {

          parent.ui.toggleCheck(flag);//选中

          parent.attributes.checked=flag;//给值

          parentclick(parent);//递归选中节点

        }

      }

      2)、选择子节点

      function treeclick(node){

        var flag=node.getUI().checkbox.checked;//获取选中状态

        if(node.hasChildNodes()){    //是否有子节点

          node.eachChild(function(child)){    //循环下一级的所有子节点

            child.ui.toggleCheck(flag);  //选中

            child.attributes.checked=flag;  //赋值

            treeclick(child);  //递归选中子节点

          }

        }

      }

      3)、2个函数合并执行

      function check(node)

      {

        tree.suspendEvents();//暂停所有监听事件的执行

        treeclick(node);

        parentclick(node);

        tree.resumeEvents();//重新开始所有监听事件的执行

      }

  • 相关阅读:
    JAVA 8学习笔记-第五章
    JAVA 8学习笔记-第一章
    JAVA 8学习笔记-第二章
    MySQL应用
    Mac给iTerm2终端配色
    masOS支持NTFS读写,无需第三方软件
    macOS Apache配置用于支持Python CGI编程
    Vim
    Thrift
    Netflix Hystrix
  • 原文地址:https://www.cnblogs.com/jieliu726/p/3666056.html
Copyright © 2011-2022 走看看