extjs树

oneTreePanel =Ext.extend(Ext.tree.TreePanel,{
   menu:null,
   constructor:function(){
     this.menu=new Ext.menu.Menu({
      items:[{
        text:"添加",
        handler:this.onInsertNode,
        scope:this
       },{
        text:"删除",
        handler:this.onDeleteNode,
        scope:this
       },{
        text:"修改",
        handler:this.onUpdateNode,
        scope:this
       }]  
    }),
    oneTreePanel.superclass.constructor.call(this,{
      renderTo:Ext.getBody(),
      width:200,
      height:200,
      
      listeners:{
        "contextmenu":{
          fn:this.onContextmenu,
          scope:this
         }
      }
      //导入数据 数据只能是json的()
      loader:new Ext.tree.TreeLoader({
          dataUrl:'http://localhost/ExtJSTest/server/app/test/29/databasePanel.asp',
          //每次下载的时候不刷新页面
          clearOnload:false
         }),
      //定义根节点
      root:new Ext.tree.AsyncTreeNode({
                               text: '载入节点',
          id:"0"
                        })
    });
      },
   onContextmenu:function(_node , _e){
    //点击菜单时候就显现出来菜单的值
    this.menu["crrentNode"] = _node;
    //判断不能删除根结点
    if(this.menu["crrentNode"].id=0)
         this.menu.items.itemAt(1).setDisabled(true);
    else
         this.menu.items.itemAt(1).setDisabled(false);
    //时间传的参数 _e.getXY获取当前的坐标
    this.menu.showAt(_e.getXY);
   },
   //menu菜单修改事件
   onUpdateNode:function(){
      //alert(this.menu["crrentNode"].text);
      Ext.Msg.prompt("请输入修改后的名称","名称",this.onUpdateNodePrompt,this,false,this.menu[crrentNode].text);
   },
   //menu菜单修改事件
   onUpdateNodePrompt:function(_btn,_text){
    if(_btn == "ok")
    {
     if(this.menu["crrentNode"].text!=_text.trim())
     {
     this.menu["crrentNode"].setText(_text);
      Ext.Ajax.request({url:"",params:{id:this.menu["crrentNode"].id,text:this.menu["crrentNode"].text}});
     }
       }
    
    
   },
   //menu菜单删除事件
   onDeleteNode:function(){
    Ext.Msg.confirm("系统提示","您师是否确定删除节点?",this.onDeleteNodeConfirm,this);
   },
   //menu菜单删除事件
   onDeleteNodeConfirm:function(_btn){
    var _node= this.menu["crrentNode"];
    if(_btn == "yes")
    //_node.parentNode.id 获取当前节点
     Ext.Ajax.request({url:"",params:{parentId:_node.parentNode.id,id:_node.id}});
     _node.remove();
      },
   //添加树节点事件
   onInsertNode:function(){
     Ext.Msg.prompt("请输要添加的树节点名称","名称",this.onInsertNodePrompt,this);
      },
   //添加树节点事件
   onInsertNodePrompt:function(_btn,_text){
         if(_btn=="ok")
      {
       var _parent=this.menu["crrentNode"];
      //在每次添加之前 false 这 样可以在最后叶子节点上添加
      _parent.leaf=false,
      //添加个节点
      var _node=new Ext.tree.AsyncTreeNode({
                               text:_text,
          leaf:true,
          id:Ext.id()
                         }));
                     ///_parent.id 获取要添加节点的id
      Ext.Ajax.request({
        url:"",
        params:{parentId:_parent.id,id:_node.id,text:_node.text}
         });
      //这个判断会避免出现客户端添加的数据和数据库添加的数据同时出现
      if(_parent.isLoaded()){
      _parent.appendChild(_node);
      }else{
      //展开这个节点
      _parent.expand();
      }
      }
   }
   
   
});

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值