Ext tree checked

function checkchangeListner(node, checked) {
   if (node instanceof Ext.tree.TreeNode && node.hasChildNodes()) {
    node.expand(true, false, function(pnd) {
       pnd.eachChild(function(child) {
          child.ui.toggleCheck(checked);
          child.attributes.checked = checked;
          child.fireEvent('checkchange',
            checkchangeListner, child);
         }, pnd);
      });
   }
  }
  SysRoleFunctionFrom.prototype.tree0 = function() {
   var url = "/pub/sysfunPubTreeAction.do";
   var acurl = "/system/getNodePubEmployeeAction.do";
   var fclick = function(dx) {
   };
   var tc = new Mes_function();
   var tpl = tc.getTreePanel(url, acurl, "qxtree00", fclick, "系统菜单");
   tpl.on('checkchange', function(node, checked) {
      var tree = Ext.getCmp("qxtree00");
     });
     
   tpl.on('checkchange', checkchangeListner, tpl);
   var loader = tpl.getLoader();
   var tree0 = Ext.getCmp("qxtree00");
   var node = tree0.getSelectionModel().getSelectedNode();
   var a = null;
   if (node != null) {
    a = node.id;
   }
   loader.baseParams = {
    node : a
   }
   return tpl;
  };
说明,这个树是项目统一封装的,只需要给必要的参数就可以了,自己申明的树一样可以这样用,

支持限持级的展开和选中


************************************************************************************

<body>
    <script>
        Ext.BLANK_IMAGE_URL = "../resources/images/default/s.gif";
        Ext.QuickTips.init();
        Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
         
        Ext.onReady(function(){
            /************************** 联系人树形菜单**************************/
                  var contacterTree = new Ext.tree.TreePanel({
                         id:"treePanelContact",
                         border:false,
                         lines:false,   // 去掉树的线
                 rootVisible:true,           
                 autoScroll:true,
                 animate:true, 
                 width:200,                
                 height : 468,
                 style:"background-color:#FFFFFF;border-color:#0099FF;",               
                //  enableDD: false,  // 允许树可以拖拽
                 containerScroll: true,
                 loader: new Ext.tree.TreeLoader({
                     dataUrl:'<%=path%>/treeOperation.do?action=loadTree'
                 }),
                 root:new Ext.tree.AsyncTreeNode({
                    id : "treeContact",
                     text: '联系人',
                     draggable:false,                                 
                     expanded: true   // 展开根节点下的节点
                 }),
                 listeners:{
                    click : function(node){
                        if(node.id == "treeContact"){
                            // 如果点击的是根节点,则 GridPanel 显示所有的数据
                        //  store.load({params:{flag:'all'}});
                        }
                        else if(node.isLeaf() == true){
                            // 如果点击的是枝节点的话,则根据 ID 查询联系人的信息
                        //  store.load({params:{flag:'contacter',contacterId:node.id}});                                
                        }else{
                            // 如果既不是根节点也不是枝节点,那么点击的就是分组节点,
                            // 则 GridPanel 显示对应分组号的联系人信息
                        //  store.load({params:{flag:'group',groupId:node.id}});
                        }                       
                    }
                 }
             });
              
             // 添加 树的右键菜单
             contacterTree.on('contextmenu', menuShow);
            function menuShow ( node )
            {
                treeRightMenu.show(node.ui.getAnchor());
                node.select();//让右击是选中当前节点              
            };
   
                 
           var treeRightMenu = new Ext.menu.Menu({ 
                 id: 'treeMenuContext',
                 items: [ 
                 { 
                   text: '搜索联系人',
                   icon:"../images/shared/icons/fam/search.gif",
                   handler:function()
                    {
                        Search_Contacter("搜索联系人");  // 具体可以根据自己的需求来写。。
                    } 
                 },                 
                 { 
                   text: '添加联系人',
                   icon:"../images/shared/icons/fam/add.gif",
                   handler:function()
                    {
                        AddContacter("新增联系人");  // 具体可以根据自己的需求来写。。
                    } 
                 },{ 
                   text: '添加分组',
                   icon:"../images/shared/icons/fam/add.gif",
                   handler:function()
                    {
                        AddContacterGroup("新增分组");  // 具体可以根据自己的需求来写。。
                    }  
                 },{
                   text: "删除", 
                   icon: "../images/shared/icons/fam/delete.gif",
                   handler:function()
                    {
                        treeDelContacter();  // 具体可以根据自己的需求来写。。
                    } 
                 }
              /*   ,{
                   text:"修改",
                   icon: "../images/shared/icons/fam/cog_edit.png",
                   handler:function()
                    {
                        treeEditContacter();
                    } 
                 } */
                 ]
           });                   
              
             // 当选中父节点时,让其子节点相应选中
             contacterTree.on('checkchange', function(node, checked) {   
                node.expand();   
                node.attributes.checked = checked;   
                node.eachChild(function(child) {   
                    child.ui.toggleCheck(checked);   
                    child.attributes.checked = checked;   
                    child.fireEvent('checkchange', child, checked);   
                });   
            }, contacterTree);  
              
             // 删除事件
             function treeDelContacter(){
                 // 当右键点击删除时,先判断右键点击的是分组节点还是枝节点
                 // 通过选择模型来得到右键点击的节点
                 var selectModel = contacterTree.getSelectionModel();
                var node = selectModel.getSelectedNode();
                 
                if(node.id == "treeContact"){
                    // 右键根节点
                    Ext.MessageBox.alert("提示","根节点是不允许删除的!");
                }else if(node.isLeaf() == true){
                    // 右键 联系人节点
                    var flag = confirm("您确定要删除名为 :“"+node.text+" ”的联系人信息吗?");
                    if(flag == true){
                        location.href="<%=path%>/contacterManage.do?action=delContacters&strContacterId="+node.id+";";
                        //alert("成功删除名为 :"+node.id+" 的联系人信息!");
                    }   
                }else{
                    // 右键 分组节点
                    var flag = confirm("您确定要删除名为 :“"+node.text+" ”的分组信息吗?");
                    if(flag == true){
                        //alert("成功删除名为 :"+node.id+" 的分组信息!");
                        location.href="<%=path%>/contacterManage.do?action=delContacterGroup&strGroupId="+node.id+";";
                    }                                        
                }
             }
              
             // 修改事件
/*           function treeEditContacter(){
                 // 当右键点击删除时,先判断右键点击的是分组节点还是枝节点
                 // 通过选择模型来得到右键点击的节点
                 var selectModel = contacterTree.getSelectionModel();
                var node = selectModel.getSelectedNode();
                 
                if(node.id == "treeContact"){
                    // 右键根节点
                    Ext.MessageBox.alert("提示","根节点是不允许修改的!");
                }else if(node.isLeaf() == true){
                    // 右键 联系人节点
                     
                }else{
                    // 右键 分组节点
                                                               
                }
             }  */
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值