




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年焊工理论试题及答案
- 2025年电梯作业人员考试考前强化模拟题题库及答案
- 高中政治上学期第6周《文化创新》说课稿
- 直播销售员安全实操模拟考核试卷含答案
- 环境性能驱动的老年人社区公共空间多目标优化设计方法研究
- 第二单元第2课 手工书设计 说课稿-2024-2025学年人教版初中美术八年级上册
- 基于UbD的高中数学单元教学研究-以空间向量与立体几何为例
- 四川省成都市高中地理 第2章 地球上的大气 2.1 冷热不均引起大气运动大气的水平运动说课稿 新人教版必修1
- 第10课 《小型网络的搭建》教学设计 浙教版(2023)初中信息技术七年级上册
- Neuregulin-1通过NF-κB-NLRP3-GSDMD通路调控TBI大鼠小胶质细胞焦亡的机制研究
- 幼儿园干冰课件
- pbl教学课件模板
- 从S国税局视角剖析转让定价反避税的实践与启示
- 图像几何变换讲解
- 《胸外心脏按压操作》课件
- 2024-2025学年天津市河西区八年级上学期期中数学试题及答案
- 居家陪护免责合同协议
- 承台大体积砼浇筑方案
- 宣传片管理制度
- 分拣部管理制度
- 食堂不合格食品处置制度
评论
0/150
提交评论