ExtTree异步树的增加修改删除的简单实现~.docx_第1页
ExtTree异步树的增加修改删除的简单实现~.docx_第2页
ExtTree异步树的增加修改删除的简单实现~.docx_第3页
ExtTree异步树的增加修改删除的简单实现~.docx_第4页
ExtTree异步树的增加修改删除的简单实现~.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Ext Tree异步树的增加修改删除的简单实现 之前项目有个模块要求用树形解决,附带要实现checkbox,增删修改以及copy/cut/paste等等功能;因为之前写的人用了xloadTree,其他功能都实现了,但是客户要求要有cookie功能,实现不了麻烦啊正巧现在在学习用Ext,发现Ext的tree本身就很强大基本的功能都可以实现。Ext.onReady(function()Ext.QuickTips.init();Ext.state.Manager.setProvider(newExt.state.CookieProvider();varonConfirmDelete=function(btn)if(btn=yes)vartreePanel=Ext.getCmp(treepanel);treePanel.el.mask(删除中,x-mask-loading);varselNode=treePanel.getSelectionModel().getSelectedNode();Ext.Ajax.request(url:organ!del.do,params:organId:selNode.id,success:function(response,opts)treePanel.el.unmask();varresponseJson=Ext.decode(response.responseText);if(responseJson.success=true)selNode.remove();elseExt.Msg.alert(Anerroroccuredwiththeserver.););varonDelete=function()vartreePanel=Ext.getCmp(treepanel);varselNode=treePanel.getSelectionModel().getSelectedNode();if(selNode)Ext.MessageBox.confirm(是否确定?,请确定删除目录+selNode.attributes.text,onConfirmDelete)varonCompleteAdd=function(treeEditor,newValue,oldValue)vartreePanel=Ext.getCmp(treepanel);varselNode=treePanel.getSelectionModel().getSelectedNode();if(newValue.length0)Ext.Ajax.request(url:organ!save.do,params:organI:newValue,organInfo.pid:selNode.id,success:function(response,opts)treePanel.el.unmask();varresponseJson=Ext.decode(response.responseText);if(responseJson.success!=true)Ext.Msg.alert(Anerroroccuredwiththeserver.);treeEditor.editNode.remove();elsetreeEditor.editNode.setId(responseJson.data0.id););elsetreeEditor.editNode.remove();varonAddNode=function()vartreePanel=Ext.getCmp(treepanel);varselNode=treePanel.getSelectionModel().getSelectedNode();if(!this.treeEditor)this.treeEditor=newExt.tree.TreeEditor(treePanel,cancelOnEsc:true,completeOnEnter:true,selectOnFocus:true,allowBlank:false,listeners:complete:onCompleteAdd);selNode.leaf=false;selNode.expand(false,true,function()varnewNodeCfg=text:,id:tmpNode,leaf:(selNode.id!=0),checked:truevarnewNode=selNode.insertBefore(newNodeCfg,selNode.firstChild);this.treeEditor.editNode=newNode;this.treeEditor.startEdit(newNode.ui.textNode);,this);varonCompleteEdit=function(treeEditor,newValue,oldValue)vartreePanel=Ext.getCmp(treepanel)treePanel.el.mask(保存中,x-mask-loading);varselNode=treePanel.getSelectionModel().getSelectedNode();vareditNode=treeEditor.editNode;vareditNodeId=editNode.id;Ext.Ajax.request(url:organ!saveC.do,params:organInfo.id:editNodeId,organI:newValue,organInfo.pid:editNode.parentNode.id,success:function(response,opts)treePanel.el.unmask();varresponseJson=Ext.decode(response.responseText);if(responseJson.success!=true)editNode.setText(oldValue);Ext.Msg.alert(Anerroroccuredwiththeserver.);,failure:function(response,opts)treePanel.el.unmask();editNode.setText(oldValue);Ext.Msg.alert(Anerroroccuredwiththeserver.););varonEdit=function()vartreePanel=Ext.getCmp(treepanel);varselectedNode=treePanel.getSelectionModel().getSelectedNode();if(!this.treeEditor)this.treeEditor=newExt.tree.TreeEditor(treePanel,cancelOnEsc:true,completeOnEnter:true,selectOnFocus:true,allowBlank:false,listeners:complete:onCompleteEdit);this.treeEditor.editNode=selectedNode;this.treeEditor.startEdit(selectedNode.ui.textNode);varbuildCtxMenu=function()returnnewExt.menu.Menu(items:itemId:add,handler:onAddNode,itemId:edit,handler:onEdit,scope:onEdit,itemId:delete,handler:onDelete);varonCtxMenu=function(node,e)node.select();e.stopEvent();if(!this.ctxMenu)this.ctxMenu=buildCtxMenu();varctxMenu=this.ctxMenu;varaddItem=ctxMenu.getComponent(add);vareditItem=ctxMenu.getComponent(edit);vardeleteItem=ctxMenu.getComponent(delete);addItem.setText(新建文件夹);editItem.setText(重命名);deleteItem.setText(删除);if(node.id=0)addItem.enable();deleteItem.disable();editItem.disable();elseaddItem.enable();editItem.enable();deleteItem.enable();ctxMenu.showAt(e.getXY();,vartree=newExt.tree.TreePanel(id:treepanel,autoScroll:true,animate:false,enableDD:true,useArrows:true,plugins:newExt.ux.state.TreePanel(),loader:newWithubTreeLoader(dataUrl:organ!newTree.do),root:nodeType:async,id:0,text:组织结构,leaf:false,expanded:true,listeners:contextmenu:onCtxMenu,);newExt.Window(height:300,width:300,layout:fit,border:false,title:Ourfirsttree,items:tree).show(););对应的save,del,newTree方法publicStringsave()throwsExceptionif(organInfo.getPid().equals(0)organInfo.setPid(null);Stringid=organInfoService.saveOrganInfo(organInfo);returnjson(id:+id+);publicStringdel()throwsExceptionListlist=this.searchList(organId,newArrayList();StringBuffersb=newStringBuffer();sb.append(organId);if(list.size()!=0)for(inti=0;ilist.size();i+)sb.append(,).append(list.get(i);organInfoService.delOrganInfo(sb.toString().split(,);returnjson();publicStringnewTree()throwsExceptionStringBuffersb=newStringBuffer();Listlist;if(node.equals(0)list=organInfoService.getOrganInfoListByNull();elselist=organInfoService.getOrganInfoByPidList(node);inti=0;sb.append();for(OrganInfooi:list)if(i!=0)sb.append(,);sb.append(text:).append(oi.getName().append(,id:).append(oi.getId().append();ListlistId=organInfoService.getOrganInfoByPidList(oi.getId();if(listId.size()!=0)sb.append(,leaf:false);elsesb.append(,leaf:true);sb.append(,checked:true);sb.append();i+;sb.append();returnjson(sb.toString();哦,对应tree的打开状态的cookie记录的控件/vim:ts=4:sw=4:nu:fdc=4:nospell/*globalExt*/*classExt.ux.state.TreePanel*Ext.tree.TreePanelStatePlugin*Usage:vartree=newExt.tree.TreePanel(root:nodeType:async,id:root,text:Root,loader:url:get-tree.php,plugins:newExt.ux.state.TreePanel();*authorIng.JozefSaklo*copyright(c)2009,byIng.JozefSaklo*date*5.April2009*version1.0*revision$Id:Ext.ux.state.TreePanel.js6762009-04-0713:03:20Zjozo$*licenseExt.ux.state.TreePanel.jsislicensedunderthetermsof*theOpenSourceLGPL3.0license.Commercialuseispermittedtotheextent*thatthecode/component(s)doNOTbecomepartofanotherOpenSourceorCommercially*licenseddevelopmentlibraryortoolkitwithoutexplicitpermission.*Licensedetails:/licenses/lgpl.html*forum64714*demohttp:/examples.extjs.eu/?ex=treestate*download*Ext.ux.state.TreePanel.js.bz2*Ext.ux.state.TreePanel.js.gz*Ext.ux.state.TreePanel.js.zip*donate*/Ext.ns(Ext.ux.state);/dummyconstructorExt.ux.state.TreePanel=function();Ext.override(Ext.ux.state.TreePanel,/*Initializestheplugin*paramExt.tree.TreePaneltree*private*/init:function(tree)/installeventhandlersonTreePaneltree.on(/addpathofexpandednodetostateHashbeforeexpandnode:function(n)this.stateHashn.id=n.getPath();/deletepathandallsubpathsofcollapsednodefromstateHash,beforecollapsenode:function(n)deletethis.stateHashn.id;varcPath=n.getPath();for(varpinthis.stateHash)if(this.stateHash.hasOwnProperty(p)if(-1!=this.stateHashp.indexOf(cPath)deletethis

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论