Ext tree

 tree = new Ext.tree.TreePanel({
                    renderTo: 'CarListdiv',
                    useArrows: true,
                    border: true,
                    frame: true,

                    animCollapse: false,
                    draggable: false,
                    animate: false,
                    rootVisible: true,
                    enableDD: true,
                    containerScroll: true,
                    autoScroll: true,
                    height: 200,
                    root: tree_root
                , listeners: {


                    "click": function (node) {
                        // debugger;
                        //alert(node.leaf);alert(node.attributes.ishide);
                        if (node.leaf) {
                            node.ui.toggleCheck(true);
                            node.attributes.checked = true;
                            selectId = node.id;
                            selfOp = 1;
                            storeLoad = 0;


                            addCar(node.id);
                            debugger;
                            focusCar(node.id);
                            debugger;
                            showTooltip_rightClick(node.id, 1);
                        }
                        else {
                            if (ds1.isFiltered)
                                ds1.clearFilter();
                            setBestView(node)
                            node.expand();


                        }




                    },


                    "dblclick": function (node) {
                        node.ui.toggleCheck(true);
                        node.attributes.checked = true;


                        if (!node.leaf) {
                            node.expand();
                        }


                    },


                    'checkchange': function (node, e) {


                        if (!node.leaf) {


                            node.eachChild(function (child) {
                                child.ui.toggleCheck(node.attributes.checked);
                                child.attributes.checked = node.attributes.checked;
                                child.fireEvent('checkchange', child, node.attributes.checked);
                            });




                        }
                        else {
                            if (node.attributes.checked) {
                                debugger;
                                addCar(node.id);
                            }
                            else {
                                removeCar(node.id);
                            }
                        }


                    }

                   , 'load': function () {


                       if (load == 1)//加载完成后
                       {
                           // alert("加载完成后");
                           Ext.get(this.getEl()).unmask();
                       }


                   },
                    "beforeload": function () {
                        //  return;


                        if (load == 0) {
                            Ext.get(this.getEl()).mask('正在加载车辆,请稍候...', 'x-mask-loading');
                            load = load + 1;
                        } else {
                            if (load == 1) {
                                Ext.get(this.getEl()).unmask();
                                load = load + 1;
                            }
                        }
                    },
                    "contextmenu": function (node, e) {
                        debugger;
                        if (!node.leaf)
                            return;


                        selectId = node.id;


                        if (ds1.isFiltered())
                            ds1.clearFilter();
                        var car = ds1.getById(node.id);
                        if (car.data['LOCATIONTYPE'] == 1) {
                            bartitle = "人员";
                            createtreeMenuByperson();
                            treeMenuByperson.showAt(e.getPoint());
                        } else {
                            bartitle = "车辆";
                            if (car.data['LOCK_STATUS'] == 1) {


                                createTreeMenu();
                                treeMenu.showAt(e.getPoint());


                            }
                            else {
                                createTreeMenu();
                                treeMenu.showAt(e.getPoint());
                            }
                        }
                        //filterDs1();
                    }




                }


                });


                //设置属性
                tree.root.attributes.description = '这是根节点';

                //  debugger;
                tree.root.expand(true);

                appendChildNodesFromServerData(tree.root); // load data     


 


                function appendChildNodesFromServerData(node) { // append child nodes from server data 
                    // debugger;
                    Ext.Ajax.request({

                        method: "post",
                        // headers: { 'Content-Type': 'application/json' },
                        jsonData: { v_companyInfo: '*' },
                        url: 'ws/ws_jquery_carinfo.asmx/GetAllCarByCmpId',
                        success: function (request) {
                            //debugger;
                            //alert(request.responseText);
                            var data = Ext.util.JSON.decode(request.responseText);



                            // debugger;
                            node.appendChild(data.d); // append child nodes 

                            //alert(data.d);
                            //document.writeln(data.d);


removeChildNodes(node);
                     node.reload();
                            node.expandChildNodes(true); // expand node 

                            //  debugger;

                        },
                        failure: function (resp, opts) {
                            // debugger;
                            var respText = Ext.util.JSON.decode(resp.responseText);
                            Ext.Msg.alert('错误', respText.error);


                            Ext.MessageBox.show({
                                title: '版块管理',
                                msg: 'appendChildNodesFromServerData 对不起,加载数据出现异常,请重试!',
                                buttons: Ext.MessageBox.OK,
                                icon: Ext.MessageBox.ERROR
                            });
                        }
                    });
                }


 

 

function removeChildNodes(node) { // remove all child nodes
             
             while (node.firstChild) {
                 removeChildNodes(node.firstChild);
             }
             if (node.getDepth() != "0") { // isn't root node
                 node.remove();
             }
         }    




 <script src="js/datetime.js" type="text/javascript"  charset="gb2312"></script>
     <link rel="stylesheet" type="text/css" href="js/ext-3.4.0/resources/css/ext-all.css" />
  <script type="text/javascript" src="js/ext-3.4.0/adapter/ext/ext-base.js"></script>
 
  <script type="text/javascript" src="js/ext-3.4.0/ext-all.js"></script>
    
    <script type="text/javascript">
        function singlemutimodel_change(obj) {
            //
            if ("单选" == obj.value) {
                appendChildNodesFromServerData(forumTree.root);
                document.getElementById("hfd_DeviceId").value = "";
 
            } else {
 
                appendChildNodesFromServerData(forumTree.root, false);
                document.getElementById("hfd_DeviceId").value = "";
            }
        }
    </script>
     <script type="text/javascript">
         var forumTree;
 
         function trimStr(rawStr, rpCha) {
             //去除开始字符窜
             //debugger;
             //if (rawStr.startsWith(rpCha)) 
            if( rawStr.indexOf(rpCha) == 0)
             {
 
                 
 
 
                 rawStr = rawStr.substring(rpCha.length, rawStr.length);
             }
 
             //去除结束字符串
             //if (rawStr.endsWith(rpCha)) 
             if( rawStr.indexOf(rpCha)== rawStr.length-rpCha.length)
             {
 
                
 
                 rawStr = rawStr.substring(0, rawStr.length - rpCha.length);
             }
 
             return rawStr;
         }
 
         function CheckTreeNodeCheckState(node) {
             var tmpIpcList = document.getElementById("hfd_DeviceId").value;
             var tmpselectId;
             if (node.attributes.checked && node.isLeaf) {
 
                 tmpselectId = node.id;
                 if (tmpselectId != null) {
                     var realIpcId = tmpselectId.toString().substring("ipc_".length, tmpselectId.length);
                     //
                     tmpIpcList = tmpIpcList.replace(realIpcId, "");
                     tmpIpcList = tmpIpcList.replace("&&", "&");
                     tmpIpcList = trimStr(tmpIpcList, '&');
 
                     //
                     if (tmpIpcList != "") {
                         tmpIpcList += "&";
                     }
                     tmpIpcList += realIpcId;
                     tmpIpcList = trimStr(tmpIpcList, '&');
 
 
 
 
 
                     document.getElementById("hfd_DeviceId").value = tmpIpcList;
                     //alert(tmpIpcList);
                 }
 
 
             } else if (!node.attributes.checked && node.isLeaf) {
                 tmpselectId = node.id;
                 if (tmpselectId != null) {
                     var realIpcId = tmpselectId.toString().substring("ipc_".length, tmpselectId.length);
                     tmpIpcList = tmpIpcList.replace(realIpcId, "");
                     tmpIpcList = tmpIpcList.replace("&&", "&");
                     tmpIpcList = trimStr(tmpIpcList, '&');
                     document.getElementById("hfd_DeviceId").value = tmpIpcList;
                     // alert(tmpIpcList);
                 }
 
             }
 
 
 
 
         }
         function removeChildNodes(node) { // remove all child nodes
 
             while (node.firstChild) {
                 removeChildNodes(node.firstChild);
             }
             if (node.getDepth() != "0") { // isn't root node
                 node.remove();
             }
         }
 
 
         function appendChildNodesFromServerData(node, v_checked) { // append child nodes from server data
             var myurl = 'WebService_ClientApp.asmx/GetIpcListForExtTree_nocheck';
 
             var cliAcctType = 'Father';
             var zhuAcctId;
             var loginUserId = 'test';
             var LoginPwd;
             var checked = false;
             if (v_checked != null) {
                 checked = v_checked;
                 myurl = 'WebService_ClientApp.asmx/GetIpcListForExtTree';
             }
 
 
             LoginPwd = 'test';
 
             if (cliAcctType == "Father") {
                 zhuAcctId = 'test';
                 loginUserId = zhuAcctId;
 
             } else if (cliAcctType == "Child") {
                 zhuAcctId = '';
 
 
             }
 
             Ext.Ajax.request({
                 method: "post",
                 headers: { 'Content-Type': 'application/json' },
                 jsonData: {
                     v_ZhuYongHuId: zhuAcctId
                 , v_Model: cliAcctType
                 , v_UserId: loginUserId
                 , v_UserPwd: LoginPwd
                 , v_check: checked
                 },
                 url: myurl,
                 success: function (request) {
 
 
                     var data = Ext.util.JSON.decode(request.responseText);
 
 
                     // debugger;
                     removeChildNodes(node);
                     node.reload();
                     node.appendChild(data.d); // append child nodes  
 
 
 
                     node.expandChildNodes(true); // expand node
                 },
                 failure: function (resp, option) {
                     // debugger;
                     Ext.MessageBox.show({
                         title: '版块管理',
                         msg: '对不起,加载数据出现异常,请重试!',
                         buttons: Ext.MessageBox.OK,
                         icon: Ext.MessageBox.ERROR
                     });
                 }
             });
         }
 
 
 
         Ext.onReady(function () {
             Ext.QuickTips.init();
 
             forumTree = new Ext.tree.TreePanel({
 
 
             
                 useArrows: true,
                 border: true,
                 frame: false,
                 renderTo: 'IpcTree',
                 title: '',
                 animCollapse: false,
                 draggable: false,
                 animate: false,
                 rootVisible: true,
                 enableDD: true,
                 containerScroll: true,
 
                 autoScroll: true,
                 height: 500,
                 
 
                 root: new Ext.tree.AsyncTreeNode({
                     nodeType: 'async',
 
                     id: "id",
                     text: "根节点",
                     expanded: true,
                     leaf: false,
                     iconCls: 'group'
                         ,
                     children: [
 
 
                     ]
 
 
 
 
                 })
 
                  , listeners: {
 
                      "click": function (node) {
 
                          if (node.leaf) {
                              node.ui.toggleCheck(true);
                              node.attributes.checked = true;
                              selectId = node.id;
                              selfOp = 1;
                              storeLoad = 0;
 
                              var realIpcId = selectId.toString().substring("ipc_".length, selectId.length);
 
                              //alert(selectId + " >>> " + realIpcId);
 
                              document.getElementById("hfd_DeviceId").value = realIpcId;
                          }
                          else {
 
                              node.expand();
 
                          }
 
 
                      }
 
                        , 'checkchange': function (node, e) {
 
                            if (!node.leaf) {
 
                                node.eachChild(function (child) {
                                    child.ui.toggleCheck(node.attributes.checked);
 
                                    //                                    if(child.attributes.checked==node.attributes.checked)
                                    //                                        child.attributes.checked = node.attributes.checked;
 
                                    // child.fireEvent('checkchange', child, node.attributes.checked);
                                });
 
                            }
                            else {
                                if (node.attributes.checked) {
 
                                    CheckTreeNodeCheckState(node);
 
                                }
                                else {
                                    CheckTreeNodeCheckState(node);
                                }
                            }
 
                        }
                  }
 
             });
             // debugger;
             //forumTree.render(document.body);
             forumTree.render();
             forumTree.expandAll(); // 展开所有结点
             //forumTree.render();
             // debugger;
 
             //             if(hdf_SelectedIndexChanged.Value=="单选")
             //                 appendChildNodesFromServerData(forumTree.root); // load data
             //             else
             appendChildNodesFromServerData(forumTree.root, false); // load data
 
 
 
             /
 
 
         });
          
 
       
 
 
     </script>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值